探秘Tomcat(一)——Myeclipse中导入Tomcat源码

时间:2022-04-21
本文章向大家介绍探秘Tomcat(一)——Myeclipse中导入Tomcat源码,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形;但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生活,你就会发现世界如此美好,我知道的如此的少!

  好比,但你看到如下代码

namespace Singleton 
{ 
    public class Singleton 
    { 
        private static Singleton singleton;

        private Singleton() 
        { 
        }

        public static Singleton GetInstance() 
        { 
            if (singleton == null) 
            { 
                singleton = new Singleton(); 
            } 
            return singleton; 
        } 
    } 
}

没错,这就是几行代码,在你还没有接触到什么是单例模式的时候,一个有好奇心的人会按照machine的执行过程走一遍这段代码,一个善于总结的人在理解后还会细细体味这段代码的奥妙之处,如果是一只刚出道的青蛙,或许一面之缘后就是代码眼中过,啥也没有留;相反,你如果深谙单例模式之道,你一眼就看出了这是单例模式,而且还是懒汉式。

  说了这么多还是想说一句话:知识面很重要,思考很重要!

   正文:言归正传,今天完成了如何Tomcat如何导入到Myeclipse中,以下是自己的操作步骤。

  一:版本选型

  Tomcat还是选择经常用的Tomcat6,源码下载链接: 

http://tomcat.apache.org/download-60.cgi

  Ant 选择的版本是1.7(用作编译Tomcat源码使用),下载链接:

http://archive.apache.org/dist/ant/binaries/

  Myeclipse版本:8.6

二:获取Tomcat源码

1.将下载好的apache-tomcat-6.0.43-src.zip解压到某文件夹中,如D:tomcatapache-tomcat-6.0.43-src

2.使用Ant编译Tomcat源码

2.1配置Ant环境:

    • 计算机-> 右键“属性”->点击“高级系统设置”->选择“高级”选项卡->点击“环境变量”,弹出对话框:

添加Ant_HOME:    D:安装包apache-ant-1.7.0-binapache-ant-1.7.0(我的ant解压在D:安装包 下)

    path:   %ANT_HOME%bin 

    •   验证Ant配置是否成功  

    开始->运行->cmd,输入ant -version得到

2.2使用Ant编译Tomcat源码

    •   进入源码所在目录
    • 执行“ant download”命令,下载tomcat依赖的项目
    •   执行ant命令,编译成功,界面如下:

这时可以发现目录D:安装包apache-tomcat-6.0.43-src下多了个output文件夹,进入bin目录,分别点击startup.bat和shutdown.bat启动和结束tomcat服务。

     点击startup.bat,Tomcat成功启动:

三、Myeclipse中导入Tomcat源码

1.新建Java Project,如TSTest

2.右键项目->Import->File System

  选中tomcat源码所在文件位置,勾选其中的java和test两个文件夹,Into folder选择当前新建的项目,如图所示:

3.导入如下jar包:

注意,org.eclipse.jdt.core_3.5.2.v_981_R35x.jar可以在Myeclipse安装的目录....AppDataLocalGenuitecCommon中找到

  这样tomcat源码项目就不会报错了。

4.运行tomcat源码

  进入org.apache.catalina.startup下的Bootstrap.java类,右键run as->Java Application

  发现没有正常启动,控制台信息为:

2015-1-25 18:58:06 org.apache.catalina.startup.ClassLoaderFactory validateFile
警告: Problem with directory [D:UsersAdministratorWorkspacesMyEclipse 8.6TSTestlib], exists: [false], isDirectory: [false], canRead: [false]
2015-1-25 18:58:06 org.apache.catalina.startup.ClassLoaderFactory validateFile
警告: Problem with directory [D:UsersAdministratorWorkspacesMyEclipse 8.6TSTestlib], exists: [false], isDirectory: [false], canRead: [false]
2015-1-25 18:58:06 org.apache.catalina.startup.Catalina load
警告: Can't load server.xml from D:UsersAdministratorWorkspacesMyEclipse 8.6TSTestconfserver.xml
2015-1-25 18:58:06 org.apache.catalina.startup.Catalina load
警告: Can't load server.xml from D:UsersAdministratorWorkspacesMyEclipse 8.6TSTestconfserver.xml
2015-1-25 18:58:06 org.apache.catalina.startup.Catalina start
严重: Cannot start server. Server instance is not configured.

从提示信息可以看出是没有加载server.xml等文件,通过查找发现需要在run as->run Configurations中的VM arguments中添加:

  -Dcatalina.home="D:tomcatapache-tomcat-6.0.43-srcoutputbuild"(该目录为tomcat源码所在目录)

  运行成功,控制台打印信息为:

  以前无数次的启动和终止tomcat,数这次最特别,真正的从源码去控制Tomcat服务^_^