首先从Apache的SVN服务器中获取Tomcat源码

  1. 安装SVN客户端。当然也可以安装(My)Eclipse的插件。这里采用安装SVN客户端的方式。安装方式参考我的另一篇博文:SVN服务器搭建以及在MyEclipse中的使用方法
  2. cmd-->svn export http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_36/  D:/Tomcat_Src ;后面的路径可以自定义。(要求联网)。执行成功后,下面是D:/Tomcat_Src目录的结构:
  3. 在该目录下新建build.properties文本文件,并复制目录下的build.properties.default文件的内容到build.properties中。
  4. 修改build.properties文件内容,把
     .path=/usr/share/java
    改为:
     .path=D:/Tomcat_Src/share
    因为原始内容是linux系统的路径表示法。这里得改为Window系统的路径表示法

编译Tomcat源码


  1. 由于Tomcat是用Ant工具进行编译,所以得下载ANT。下载地址:http://ant.apache.org/bindownload.cgi 。得到 apache-ant-1.9.3-bin.zip。也可以使用其他版本。安装方法可以解压后参照里面的manual目录下的install.html文件。
  2. 执行cmd,切换到D:/Tomcat_Src目录下,执行ant downlaod命令。执行完后,D:/Tomcat_Src目录下会新建有一个share目录,就是上面配置的。其目录结构如下:

  3. 同时也会新建output目录。
  4. 执行cmd,切换到D:/Tomcat_Src目录下,执行ant 命令,开始编译。跳过上述步骤不会编译成功。成功后会在D:/Tomcat_Src目录下新建一个output目录。这个目录后面会用到。

导入MyEclipse

直接上图:


点击Finish后,出现工程Tomcat 6.0.36,但又部分代码报错。这是因为缺少部分Jar包。分别是:
  1. ant.jar   这个可以在刚才那个ant的解压目录中的lib文件下找到。
  2. wsdl4j-1.6.2.jar    下载地址:http://download.csdn.net/detail/u012358984/6849633
  3. javaee.jar     下载地址:http://download.csdn.net/detail/u012358984/6849637
加入上面三个Jar包后,就能编译通过。

运行Tomcat

  1. 找到类:org.apache.catalina.startup.Bootstrap
  2. 右键run as--> run configurations.如下图设置:

  3. 点击Run,输出:
  4. Jan 14, 2014 11:50:36 PM org.apache.catalina.core.AprLifecycleListener initINFO: The APR  d Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:Program FilesJavajdk1.7.0_45in;C:windowsSunJavain;C:windowssystem32;C:windows;E:Installation ProgramsAbout Javaapache-ant-1.9.3/bin;D:Program FilesJavajdk1.7.0_45in;D:Program FilesJavajdk1.7.0_45inin;D:Program FilesPython33;C:windowssystem32;C:windows;C:windowsSystem32Wbem;C:windowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)Microsoft SQL Server100ToolsBinn;C:Program Files (x86)Microsoft SQL Server100DTSBinn;C:Program Files (x86)Microsoft SQL Server100ToolsBinnVSShellCommon7IDE;C:Program Files (x86)Windows Kits8.1Windows Performance Toolkit;C:Program FilesMicrosoft SQL Server110ToolsBinn;D:Program Files (x86)Gitcmd;D:Program FilesMySQLMySQL Server 5.5in;D:Program FilesTortoiseSVNin;d:Program Files (x86)Bazaar;.Jan 14, 2014 11:50:36 PM org.apache.coyote.http11.Http11Protocol initINFO: Initializing Coyote HTTP/1.1 on http-8080Jan 14, 2014 11:50:36 PM org.apache.catalina.startup.Catalina loadINFO: Initialization processed in 890 msJan 14, 2014 11:50:36 PM org.apache.catalina.core.StandardService startINFO: Starting service CatalinaJan 14, 2014 11:50:36 PM org.apache.catalina.core.StandardEngine startINFO: Starting Servlet Engine: Apache Tomcat/@VERSION@Jan 14, 2014 11:50:36 PM org.apache.catalina.startup.HostConfig deployDe orINFO: Deploying configuration de or docs. Jan 14, 2014 11:50:36 PM org.apache.catalina.startup.HostConfig deployDe orINFO: Deploying configuration de or host-manager. Jan 14, 2014 11:50:36 PM org.apache.catalina.startup.HostConfig deployDe orINFO: Deploying configuration de or manager. Jan 14, 2014 11:50:37 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory examplesJan 14, 2014 11:50:37 PM org.apache.catalina.core.ApplicationContext logINFO: ContextListener: contextInitialized()Jan 14, 2014 11:50:37 PM org.apache.catalina.core.ApplicationContext logINFO: SessionListener: contextInitialized()Jan 14, 2014 11:50:37 PM org.apache.catalina.startup.HostConfig deployDirectoryINFO: Deploying web application directory ROOTJan 14, 2014 11:50:37 PM org.apache.coyote.http11.Http11Protocol startINFO: Starting Coyote HTTP/1.1 on http-8080Jan 14, 2014 11:50:37 PM org.apache.jk.common.ChannelSocket initINFO: JK: ajp13 listening on /0.0.0.0:8009Jan 14, 2014 11:50:37 PM org.apache.jk.server.JkMain startINFO: Jk running ID=0 time=12/33  config=nullJan 14, 2014 11:50:37 PM org.apache.catalina.startup.Catalina startINFO: Server startup in 1385 ms

  5. 启动成功。
  6. 当然也就能设置断点,和debug as了。
若有不对的地方,欢迎吐槽。技术嘛,就是要讨论才能迅速提高。
收藏 打印