`

Tomcat8.0.x源码解析(一)--搭建源码阅读环境

阅读更多
1、 到apache tomcat官网下载tomcat源码包http://tomcat.apache.org/,目前已经有了tomcat9,我下载的是apache-tomcat-8.0.33-src.zip,然后解压

2、 安装jdk1.7或更新版本
Tomcat-8.0.33源码目录下building.txt文件是对构建tomcat的说明,第一点要求就是安装jdk1.7+,我这里安装的是jdk8

3、 安装ant1.9.5或更新版本
Tomcat源码工程采用ant来进行项目的构建
building.txt第二个要求是安装ant1.9.5+,我这里安装的是ant1.9.6

4、 cmd下使用ant编译tomcat
ant

执行这个命令根据build.xml的配置将会tomcat源码编译,编译过程需要下载依赖包,在我的机器上,依赖包存储的路径为: C:\Users\jison\tomcat-build-libs

5、 cmd下将tomcat源码工程转换成eclipse工程
ant ide-eclipse

执行这个命令时出现了异常,如下图所示:



访问googlecode.com下载文件失败。
这时候一种办法是自备梯子翻()墙,继续执行ant ide-eclipse命令完成源码工程的转换。
另一种方法则不需要。将命令行里的信息拉上去可以看到尽管访问googlecode.com下载文件失败,但是tomcat所依赖的几个jar均已经下载到了C:\Users\jison\tomcat-build-libs目录下。
我们再看一下ant ide-eclipse调用的target将会调用build.xml对应的ide-eclipse的target,相关的xml配置文件片段如下:
  <target name="ide-eclipse"
          depends="download-compile, extras-webservices-prepare, download-test-compile"
          description="Prepares the source tree to be built in Eclipse">

    <!-- Copy the sample project files into the root directory -->
    <copy file="${tomcat.home}/res/ide-support/eclipse/eclipse.project" tofile="${tomcat.home}/.project"/>
    <copy file="${tomcat.home}/res/ide-support/eclipse/eclipse.classpath" tofile="${tomcat.home}/.classpath"/>

    <!-- Copy compiler settings file -->
    <mkdir dir="${tomcat.home}/.settings" />
    <copy file="${tomcat.home}/res/ide-support/eclipse/org.eclipse.jdt.core.prefs.properties" tofile="${tomcat.home}/.settings/org.eclipse.jdt.core.prefs"/>

    <echo>Eclipse project files created.
Read the Building page on the Apache Tomcat documentation site for details on how to configure your Eclipse workspace.</echo>
  </target>

可以看到这个命令调用的target仅仅是做了三件事(即处理eclipse项目所需要的几个配置文件):
1) 将tomcat源码目录下的/res/ide-support/eclipse/eclipse.project文件复制到tomcat源码根目录并重命名为.project文件
2) 将tomcat源码目录下的/res/ide-support/eclipse/eclipse.classpath文件复制到tomcat源码根目录并重命名为.classpath文件
3) 在tomcat源码根目录创建.settings文件夹。并将/res/ide-support/eclipse/org.eclipse.jdt.core.prefs.properties复制到.settings文件夹下
当然,这个ide-eclipse的target所以依赖的download-compile的下载依赖jar的target都没有执行完,所有以上说的三件事也就没有处理了。
我们现在要做的就是手动将上面三个操作执行完即可。
需要注意的是,”.”开头的文件夹和文件windows下是无法正常创建的,这里我使用了git-bash使用linux命令解决的。

6、 将tomcat源码导入eclipse
将tomcat源码转换成eclipse工程后,就可以使用Eclipse—》File—》Import—》Existing Projects into Workspace的方式导入项目了。

7、 处理tomcat依赖报错问题
导入eclipse后,会出现依赖包找不到的错误。缺少的依赖包如下:



将这五个依赖的路径remove,然后将这五个jar从别的地方找过来。
这五个jar包其中四个在ant命令下载路径C:\Users\jison\tomcat-build-libs里面有



还有一个ant.jar可以在我们ant安装目录下的lib目录下找到。
找到这五个jar包之后,在导入eclipse的tomcat源码工程下建一个lib目录,并将这五个jar复制到lib目录下,然后将其add to buildpath。
这时项目的报错就解决了



8、 运行tomcat源码工程
Tomcat的main启动方法在org.apache.catalina.startup. Bootstrap类下,启动时选择这个类的startup-tomcat选项即可,若是选择stop-tomcat则是关闭tomcat。这一点与平时使用时tomcat的startup.bat和shutdown.bats是一样的。



9、 浏览器访问http://localhost:8080
浏览器访问的结果如下,跟平时我们使用的tomcat效果是一样的:



10、下面提供可以直接导入eclipse的tomcat-8.0.x源码工程
链接:http://pan.baidu.com/s/1pL27GKz 密码:26bz
0
3
分享到:
评论

相关推荐

    Tomcat8.0.zip

    总的来说,Tomcat 8.0是一个功能强大、高效且易于使用的Java Web服务器,为开发者提供了在Java平台上部署和运行Web应用的理想环境。其丰富的配置选项和文档资源使得开发者可以根据具体需求对其进行定制和优化。

    apache-tomcat-8.0.x-final.zip

    Apache Tomcat 8.0.x 官方全套最终版,zip文件解压后 包含如下: apache-tomcat-8.0.53.zip apache-tomcat-8.0.53.tar.gz apache-tomcat-8.0.53.exe apache-tomcat-8.0.53-fulldocs.tar.gz apache-tomcat-8.0.53-...

    Tomcat8.0服务器

    基于Javaweb开发的后台使用的服务器,Tomcat8.0.Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as ...

    tomcat-juli.jar,tomcat-juli-adapters.jar,log4j-1.2.12.jar tomcat 6日志输出

    总结来说,`tomcat-juli.jar`和`tomcat-juli-adapters.jar`是Tomcat的自定义日志实现,而`log4j-1.2.12.jar`提供了一种更强大的替代日志解决方案。通过配置这些组件,我们可以有效地管理和控制Tomcat 6的日志输出,...

    tomcat8.0.zip

    【标题】"Tomcat 8.0" 是一个流行的开源Web服务器和Java应用服务器,由Apache软件基金会维护。它是基于Java Servlet和JavaServer Pages(JSP)技术的标准实现,广泛用于部署和运行Java Web应用程序。 【描述】...

    apache-tomcat-8.0.24.tar.gz ( Linux版)

    1. **下载和解压**:从Apache官方网站下载`apache-tomcat-8.0.24.tar.gz`,使用`tar -zxvf apache-tomcat-8.0.24.tar.gz`命令将其解压到你希望的目录。 2. **环境变量设置**:将Tomcat的bin目录添加到系统的PATH...

    Tomcat8.0and8.5.zip(Windows-x-64)

    1. `apache-tomcat-8.5.23-windows-x64.zip`:这是Apache Tomcat 8.5.23版本的64位Windows版。8.5版本是Tomcat的一个中期版本,引入了多项改进和新特性,例如支持Java EE 7规范,包括WebSocket 1.1,HTTP/2等。此外...

    tomcat8.0源码+catalina-home.rar

    《深入剖析Tomcat 8.0源码:Catalina Home解析》 Tomcat作为一款广泛应用的开源Java Servlet容器,其稳定性和性能深受开发者喜爱。本文将基于"tomcat8.0源码+catalina-home.rar"这个压缩包,详细探讨Tomcat 8.0的...

    apache-tomcat-8.0.21.rar

    Users of Tomcat 8.0.x should be aware that it has reached end of life. Users of Tomcat 8.0.x should upgrade to 8.5.x or later. Note: End of life has been announced for 8.0.x only. 8.5.x is not ...

    tomcat8.0源码

    本篇文章将深入探讨Tomcat 8.0的源码,涵盖其核心组件、架构和关键功能。 1. **核心组件** - **Catalina**:Catalina是Tomcat的主要部分,负责Servlet和JSP规范的实现。它包含了部署描述符解析、请求处理和生命...

    tomcat8.0jar包

    总的来说,Apache Tomcat 8.0作为一个轻量级的Java应用服务器,其易用性和灵活性使其在开发和生产环境中都有广泛的应用。通过深入理解和熟练操作,我们可以更好地利用它来搭建和维护高性能的Java Web应用。

    tomcat-jdbc数据源所需jar包tomcat-jdbc.jar+tomcat-juli.jar

    在处理数据库连接方面,Tomcat提供了一种高效且可管理的数据源实现,名为“tomcat-jdbc数据源”。这个数据源是Tomcat内建的一种连接池,它在性能和内存管理上比标准的Java JDBC连接池更优秀,尤其适用于高并发的Web...

    spring3.0.5 所有jar文件

    org.springframework.instrument.tomcat-3.0.5.RELEASE.jar org.springframework.jdbc-3.0.5.RELEASE.jar org.springframework.jms-3.0.5.RELEASE.jar org.springframework.orm-3.0.5.RELEASE.jar org.spring...

    tomcat 8.0 linux

    【标题】:“Tomcat 8.0在Linux环境下的配置与管理” 【描述】:Tomcat 8.0是Apache软件基金会的Java Servlet容器,它实现了Java EE Web应用程序的规范,如Servlet和JSP。在Linux操作系统上部署和运行Tomcat 8.0,...

    tomcat8.5.20-redis-session共享-JAR包大全

    apache-tomcat-8.5.20.tar.gz源码包和context.xml文件,这套配置是我自己亲测可用的。。另外我用的redis4这个版本。注意:如果你使用的TOMCAT其他版本。例如tomcat6或者7这套JAR包可能不可用,tomcat8.0没有测试。...

    spring3.1 官方全部jar包

    org.springframework.instrument.tomcat-3.1.RELEASE.jar org.springframework.instrument-3.1.RELEASE.jar org.springframework.jdbc-3.1.RELEASE.jar org.springframework.jms-3.1.RELEASE.jar org.spring...

    tomcat8.5:Tomcat8.5源码解析-源码解析

    Tomcat8.5.X原始解析 IDEA开发工具,JDK1.8,已解决控制台中文乱码问题,500异常。 注意事项 环境建设参考 主类:org.apache.catalina.startup.Bootstrap 参数配置 虚拟机选项: -Dcatalina.home = catalina-home -...

    org.spring-framework-3.0.4. 所有jar

    org.springframework.instrument.tomcat-3.0.4.RELEASE.jar org.springframework.instrument-3.0.4.RELEASE.jar org.springframework.jdbc-3.0.4.RELEASE.jar org.springframework.jms-3.0.4.RELEASE.jar org....

    Tomcat 8.0 源码

    《深入剖析Tomcat 8.0源码》 Tomcat 8.0是Apache软件基金会的顶级项目之一,是一款开源的、轻量级的Java应用服务器,尤其在处理Servlet和JSP方面表现突出。它是Java EE(现为Jakarta EE)规范的重要组成部分,广泛...

    tomcat-redis-session-manager for tomcat8.5

    文件名写错了,此压缩文件支持tomcat8.5。是否支持8.0请自行测试,本人只测试了8.5,可以使用。压缩文件包括tomcat-redis-session-manager-...apache-tomcat-8.5.33.tar.gz,nginx-1.6.2.tar.gz也打包进去,一步到位。

Global site tag (gtag.js) - Google Analytics