1.下载到源码后,tomcat默认使用ant作为包管理工具,本地调试时创建pom.xml, 手动创建一个pom.xml放入源码根目录
4.0.0
org.apache.tomcat
Tomcat8.0
Tomcat8.0
8.0
Tomcat8.0
java
test
java
test
org.apache.maven.plugins
maven-compiler-plugin
2.0.2
UTF-8
1.8
1.8
org.easymock
easymock
5.0.0
test
com.unboundid
unboundid-ldapsdk
6.0.4
test
ant
ant
1.7.0
ant
ant-apache-log4j
1.6.5
ant
ant-commons-logging
1.6.5
wsdl4j
wsdl4j
1.6.2
javax.xml.rpc
javax.xml.rpc-api
1.1
org.eclipse.jdt.core.compiler
ecj
4.6.1
junit
junit
4.12
test
2.使用idea导入tomcat源码 File->Project from Existing Sources -> Maven import
重新导入依赖后TestCookieFilter会报错,本地注释掉单元测试类即可。
3.编辑配置文件, Edit Configuration, 如下图。
设置catalina.home和tomcat启动类Bootstrap, jdk我选择的是1.8

4.Maven Reload, 把依赖的包重新导入进来。

1.Servlet.service() for servlet [jsp] in context with path [] threw exception [org.apache.jasper.JasperException: Unable to compile class for JSP] with root cause
解决方案:编辑 org.apache.catalina.startup.ContextConfig 文件的 configureStart() 方法,添加初始化 JSP 解析器的代码:
在ContextConfig类的configStart方法中加入以下代码
context.addServletContainerInitializer(new JasperInitializer(), null);

我本地下载的tomcat8源码, 以上工作准备完后,直接编译,单元测试也没报错。运行起来,就可以看到猫咪了, 可以开心的看源码了。

我本地的源码config/server.xml里配置的是8080端口, 这里就跑起来了。



开始阅读tomcat源码之前,先浏览一遍tomcat官方写的介绍,里面内容很全,也是我们学习的第一手资料,这里涉及到两个变量CATALINA_HOME和CATALINA_BASE。
默认情况下,CATALINA_HOME和CATALINA_BASE指向同一目录。当您需要在一台计算机上运行多个 Tomcat 实例时,手动设置CATALINA_BASE。这样做具有以下优点:
https://2i3i.com/tomcat-code-7.html
| 博客地址: | http://www.cnblogs.com/sword-successful/ |
| 博客版权: | 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。 |
登录查看全部
参与评论
手机查看
返回顶部