• Eclipse导入Tomcat源码


    想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug)。

    这里参考了网上一些资料,将自己操作过程记个流水账。

    准备:

    1.Tomcat源码下载

    这个里下载tomcat-6.0.33源码。

    2.ant安装,用于编译tomcat的源码。

    ant下载解压后将其bin添加到系统环境path中。

    3.IDE——选用Eclipse3.7。

    =================================

    第一步:

    解压Tomcat源码,例如解压到D:\tomcat\apache-tomcat-6.0.33-src

    第二步:

    2.1)使用ant编译tomcat源码,在编译之前需要下载相关的依赖项目。我们并不知道编译需要哪些依赖项目,怎么办?

    让ant来帮忙吧!我们只需要准备一个存放这些依赖项目的地方,例如d:\tomcat\basepath

    2.2)要让ant工作起来,我们还要将apache-tomcat-6.0.33-src文件夹中的build.properties.default重命名为build.properties,

    并且打开它,修改base.path=d:\tomcat\basepath

    2.3)下载依赖项目,进入命令控制台,进入目录D:\tomcat\apache-tomcat-6.0.33-src,执行命令:ant download

    2.4)等依赖项目下载好后,就可以编译tomcat了。执行命令:ant。当编译完成后,我们可以查看目录D:\tomcat\apache-tomcat-6.0.33-src

    可以发现里面多了一个文件夹:output

    output文件夹的结构如下:

    我们会发现这个结构和从安装包里解压出来的tomcat结构一致。

    进入bin,启动tomcat成功,就说明——ant编译tomcat成功了!

    =====================================

    将tomcat源码导入eclipse。

    第一步:

    在eclipse里新建一个java项目,例如:tomcat6。

    第二步:

    import->file system

    在From directory选择tomcat源码,选择java和test(如果你需要测试的话选择test),如下图:

    在into folder中选择我们刚新建的tomcat6,finish。

    note:将java、test设置成source folder,java build path ->Source->Add folder...->选择java和test。

    现在项目结构如下图所示:

    第三部:导入jar包。

    上面那些不爽的红叉是因为缺少jar的原因,我们现在需要那些jar包呢?

    test需要junit.jar,这个直接用eclipse里面的即可。

    java中需要:

    • ant.jar
    • jaxrpc.jar
    • org.eclipse.jdt.core_3.3.1.v_780_R33x.jar
    • wsdl4j-1.5.1.jar

    导入后就清爽了!

    第四步:

    在eclipse中启动tomcat。

    找到类:org.apache.catalina.startup包中的Bootstrap类。

    run as:在Arguments的VM arguments中设置

    -Dcatalina.home="d:\output\build"

    然后就可以启动了!

    ==========================================

    问题:

    为什么要设置-Dcatalina.home="d:\output\build"?

    首先说明output是什么——它就是ant编译出来的output文件夹,大家可以试试删除里面的东西看还是否可以成功启动。

    如果不配置这个参数又会发生什么情况呢?删除-Dcatalina.home="d:\output\build",报错:

    2011-10-20 14:49:35 org.apache.catalina.startup.ClassLoaderFactory validateFile

    警告: Problem with directory [D:\myWorkSpace\tomcat6\lib], exists: [false], isDirectory: [false], canRead: [false]

    2011-10-20 14:49:35 org.apache.catalina.startup.ClassLoaderFactory validateFile

    警告: Problem with directory [D:\myWorkSpace\tomcat6\lib], exists: [false], isDirectory: [false], canRead: [false]

    2011-10-20 14:49:35 org.apache.catalina.startup.Catalina load

    警告: Can't load server.xml from D:\myWorkSpace\tomcat6\conf\server.xml

    2011-10-20 14:49:35 org.apache.catalina.startup.Catalina load

    警告: Can't load server.xml from D:\myWorkSpace\tomcat6\conf\server.xml

    2011-10-20 14:49:35 org.apache.catalina.startup.Catalina start

    严重: Cannot start server. Server instance is not configured.

    从中可以看出在项目的根目录下没有lib文件夹,没有conf文件夹,conf中没有server.xml,从而不能实例化server。

    那么按照他的提示做,在启动就ok了!

    关于安装tomcat时配置CATALINA_HOME和CATALINA_BASE的作用,请大家指点。

  • 相关阅读:
    Windows Phone 7之初体验(三.开发问答(转发))
    Windows phone 7 之初体验(一.安装Windows phone 7 sdk)
    python 程序的性能分析优化(huffman编码程序性能分析的一个小结论)
    图的深度优先遍历,及常见的扩展算法
    递归回溯与迭代回溯算法框架,打印在n个数字中取k个数字的所有可能
    python 实现的范式huffman压缩,解压缩
    <读书笔记> Thinking in python (Python 设计模式) 3. Proxy and State模式
    二分查找极其变形算法
    <读书笔记> Thinking in python (Python 设计模式) 1. Singlton的c++与python的实现
    <转载>openmesh文档的非专业翻译by kidux(学习generative programming非常好的库)
  • 原文地址:https://www.cnblogs.com/huangfox/p/2218970.html
Copyright © 2020-2023  润新知