探秘Tomcat

Posted 于继海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了探秘Tomcat相关的知识,希望对你有一定的参考价值。

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

  好比,但你看到如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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:\\tomcat\\apache-tomcat-6.0.43-src

  2.使用Ant编译Tomcat源码

    2.1配置Ant环境:

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

    

    添加Ant_HOME:    D:\\安装包\\apache-ant-1.7.0-bin\\apache-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安装的目录....\\AppData\\Local\\Genuitec\\Common中找到

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

  4.运行tomcat源码

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

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

1
2
3
4
5
6
7
8
9
10
2015-1-25 18:58:06 org.apache.catalina.startup.ClassLoaderFactory validateFile
警告: Problem with directory [D:\\Users\\Administrator\\Workspaces\\MyEclipse 8.6\\TSTest\\lib], exists: [false], isDirectory: [false], canRead: [false]
2015-1-25 18:58:06 org.apache.catalina.startup.ClassLoaderFactory validateFile
警告: Problem with directory [D:\\Users\\Administrator\\Workspaces\\MyEclipse 8.6\\TSTest\\lib], 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:\\Users\\Administrator\\Workspaces\\MyEclipse 8.6\\TSTest\\conf\\server.xml
2015-1-25 18:58:06 org.apache.catalina.startup.Catalina load
警告: Can\'t load server.xml from D:\\Users\\Administrator\\Workspaces\\MyEclipse 8.6\\TSTest\\conf\\server.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:\\tomcat\\apache-tomcat-6.0.43-src\\output\\build"(该目录为tomcat源码所在目录)

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

  

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

  如果觉得有用,欢迎点赞,同时欢迎加入左边公告栏群!

       本文链接《探秘Tomcat(一)——Myeclipse中导入Tomcat源码

 

友情赞助

 

如果你觉得博主的文章对你那么一点小帮助,恰巧你又有想打赏博主的小冲动,那么事不宜迟,赶紧扫一扫,小额地赞助下,攒个奶粉钱,也是让博主有动力继续努力,写出更好的文章^^。

 

    1. 支付宝                          2. 微信

 

                      

 

以上是关于探秘Tomcat的主要内容,如果未能解决你的问题,请参考以下文章

好文!!!Tomcat 架构原理探秘

细说Tomcat之session持久化探秘

探秘Tomcat——从一个简陋的Web服务器开始

探秘Tomcat——一个简易的Servlet容器

JVM探秘:VisualVM监控远程Java进程

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途