• Tomcat源码导入Eclipse测试


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

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

    准备:

    1.Tomcat源码下载

    这个里下载tomcat-6.0.33源码。

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

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

    3.IDE——选用Eclipse3.7。

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

    第一步:

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

    第二步:

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

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

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

    并且打开它,修改base.path=d: omcatasepath

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

    2.4)等依赖项目下载好后,就可以编译tomcat了。执行命令:ant。当编译完成后,我们可以查看目录D: omcatapache-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:outputuild"

    然后就可以启动了!

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

    问题:

    为什么要设置-Dcatalina.home="d:outputuild"?

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

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

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

    警告: Problem with directory [D:myWorkSpace omcat6lib], exists: [false], isDirectory: [false], canRead: [false]

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

    警告: Problem with directory [D:myWorkSpace omcat6lib], 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 omcat6confserver.xml

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

    警告: Can't load server.xml from D:myWorkSpace omcat6confserver.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了!

  • 相关阅读:
    控制element表格禁用选择
    深度拷贝
    VScode修复eslint报错,保存的时候自动格式修正
    关于route监听
    PAT 1030 完美数列
    PAT1029 旧键盘(C完全正确)
    PAT 1028 人口普查
    PAT 1016
    PAT:1013
    PAT :1012 数字分类
  • 原文地址:https://www.cnblogs.com/zheh/p/4370818.html
Copyright © 2020-2023  润新知