tomcat4.0源码调试

本文介绍了如何调试Tomcat 4.0的源码,主要步骤包括下载tomcat-4.1.12-src.zip并在MyEclipse中新建Java项目,导入源码和必要的jar包,配置conf目录,以及修改Bootstrap.java作为启动入口,通过Run Configurations设置启动参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在看《How Tomcat Works》,由于书中介绍的是tomcat4.0的源码实现,但是对于学习来说已经是足够足够了,想对4.0版本的源码进行调试,就到网上找了找,网上大多是tomcat6.0版本以上的源码调试,想了想,虽然版本不同,但是原理大同小异,最后花了点时间,终于调通了。

1、tomcat4.0系列源码下载

我使用的是tomcat-4.1.12-src.zip,网址:http://download.youkuaiyun.com/detail/u012945986/9656777 解压过后目录结构为:


2、在myeclipse中新建java项目,拷入源码,并导入jar包

新建java项目例如我的是apachetomcat,从源码目录:\catalina\src\share 拷贝源码到apachetomcat的src下,拷完之后肯定要报错,这时在项目新建lib文件夹,将需要的jar包全部build path,jar包我是从tomcat4安装程序里拷的,但是还会有一些jar包里面是没有的,我是从网上找的。

3、将\catalina\src\conf 配置文件拷入项目的config

将\catalina\src\conf里的配置文件拷到项目目录下,你可以直接拷config目录,目录里可能会缺少一个叫jk2.properties的配置文件,你可以从网上找找

4、找到apachetomcat\src\org\apache\catalina\startup文件下Bootstrap.java

Bootstrap.java文件是tomcat启动的入口文件,如下:

 public static void main(String args[]) {

        // Set the debug flag appropriately
        for (int i = 0; i < args.length; i++)  {
            if ("-debug".equals(args[i]))
                debug = 1;
        }

        // Configure catalina.base from catalina.home if not yet set
       
        if (System.getProperty("catalina.base") == null)
            System.setProperty("catalina.base", getCatalinaHome());
       
        // Construct the class loaders we will need
        ClassLoader commonLoader = null;
        ClassLoader catalinaLoader = null;
        ClassLoader sharedLoader = null;

上面是它main方法的部分代码

5、运行tomcat

右键Run as->Run configures..,找到Arguments,program arguments:start,如下:


运行控制台结果为:

十月 18, 2016 1:19:06 下午 org.apache.commons.modeler.Registry loadRegistry
信息: Loading registry information
十月 18, 2016 1:19:06 下午 org.apache.commons.modeler.Registry getRegistry
信息: Creating new Registry instance
十月 18, 2016 1:19:06 下午 org.apache.commons.modeler.Registry getServer
信息: Creating MBeanServer
十月 18, 2016 1:19:07 下午 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on port 8080
Starting service Tomcat-Standalone
Apache Tomcat/@VERSION@
十月 18, 2016 1:19:07 下午 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on port 8080
十月 18, 2016 1:19:07 下午 org.apache.jk.common.ChannelSocket init
信息: JK2: ajp13 listening on /0.0.0.0:8009
十月 18, 2016 1:19:07 下午 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=1/19  config=D:\workapace\apachetomcat\conf\jk2.properties

大功告成!

最后项目目录结构为:


其中webapps目录为你的项目目录,work目录是运行时tomcat自动生成的运行目录


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值