Eclipse 下调试Tomcat6源码

近期对 Tomcat 的一些原理机制产生了兴趣,于是便下载源码进行 DEBUG 来一探究竟~
tomcat6.0.29 Source ZIP 包下载地址: [url=http://apache.etoak.com/tomcat/tomcat-6/v6.0.29/src/apache-tomcat-6.0.29-src.zip]Tomcat6.0.29 Source Download[/url]
下载解压后的目录结构:
[img]http://dl.iteye.com/upload/attachment/361363/9bb8fd27-b6c8-3206-9842-255fda06eaa7.png[/img]

很明显它是基于 ANT 来构建,直接通过 Eclipse -> New -> Java Project form Existing Ant Buildfile 直接选择 apache-tomcat-6.0.29-src 下面的 build.xml 文件,然后在列出来的 task 中的 target 选择 complie即可导入工程。
[img]http://dl.iteye.com/upload/attachment/361361/13516ff0-da84-32ef-a180-168e097e27b5.png[/img]

还没有完,他的编译还依赖了四个 jar 文件,分别是: ant.jar、 jaxrpc.jar 、org.eclipse.jdt.core_3.3.1.v_780_R33x.jar、wsdl4j-1.5.1.jar,需要将这四个 jar 文件引入进去(已经打包在附件中)。
OK了,接下来直接在Eclipse 中的 Debug Configurations 中加入一个启动 Tomcat 的 Appliction. 具体在 Java Application 中加入Main启动项,选择刚才导入的 Tomcat 6.0项目,Main class 填写 org.apache.catalina.startup.Bootstrap 启动类, 然后选择 Arguments ,在 Program arguments 填写 start , 在 VM arguments 中填写 tomcat home 的路径,如:-Dcatalina.home="/Users/denger/Workspaces/Java/opensource/apache-tomcat-6.0.29-src/。 如下图所示:
[img]http://dl.iteye.com/upload/attachment/361359/1798f901-283f-3c36-aa30-6cd19d30e90a.png[/img]
[img]http://dl.iteye.com/upload/attachment/361357/682dcb3a-df55-3fef-bbd6-5ef45588d861.png[/img]

配置好后,直接 Apply 并且 Debug,这时候直接启动会出现如下异常:
java.lang.ClassNotFoundException: listeners.ContextListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)

原因是因为在 tomcat 中的 webapps 中有一个 example 的 webapp, 在这个 app 的 web.xml 配置了 listeners.ContextListener 的监听,而这个类在它 classpath 中不存在。解决办法是将 example 直接删除,反正也不影响 debug。

至此已经完成了 Tomcat 的部署,接下来要去开始 DEBUG了~ ........
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值