`
bjrobin
  • 浏览: 13639 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从源码安装tomcat 6.0.18

    博客分类:
  • java
阅读更多

 

从源码安装 tomcat 6.0.18

注意事项:

JDK 1.6

1       安装 Subversion

l  下载地址: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

l  当然,如果您想从 Eclipse 中直接导入 Tomcat 源代码,请从 http://subclipse.tigris.org/update_1.0.x 下载 Subversion 插件,即可导入 Tomcat 源代码。

l  安装完成后,请在 MS-DOS 窗口中键入 svn export help ,验证是否安装成功

2       下载 Tomcat6.0 的源代码

l  Tomcat 源代码的版本控制工具不是 CVS ,而是 Subversion

l  MS-DOS 下键入:

svn  export   http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_18/   G:\tomcat_6.0.18\src

这个命令的意思是把 Tomcat6.0.18 的源代码从 Subversion 库中导入到本机的 G:\tomcat_6.0.18\src 目录,

l  下面是源代码的目录结构,从这个目录结构中,我们可以看出该项目的开发者使用的 IDE Eclipse ,因为我们看到了熟悉的 .project .classpath 文件。

 

bin

脚本文件

conf

xml properties 配置文件

java

Java 源码文件

res

资源文件比如说图片文件, ini 文件及其它的一些静态资源文件

test

测试源代码

 

 

3       安装 Ant

请从 http://ant.apache.org/bindownload.cgi 处下载并安装

4       下载 依赖项目

 

l  Tomcat Ant 作为编译工具

l  修改 build.properties

找到 Tomcat 的源代码中的 build.properties.default 文件,将该文件复制到 build.properties

然后打开 build.properties ,找到下面这行:

base.path=/usr/share/java

将它改为:

base.path= G:/tomcat_6.0.18/src/share

 

Tomcat 编译过程中, Ant 会让我们下载一些必要的依赖项目, base.path 目录就是用来保存这些项目文件的,我们可以将这个属性指向一个已经存在的目录。

l  修改完 base.path 后,我们回到 MS-DOS 窗口,切换到 Tomcat 源代码所在目录,然后运行 ant download 命令

cd G:\tomcat_6.0.18\src

c:\apache-ant-1.7.1\bin\ant download

 

一分钟未到, Ant 就告诉我们一个错误并提示我们编译失败,就是找不到 http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 文件。

Tomcat 的编译和 Eclipse JDT 有什么关系?是因为 Tomcat 是在 Eclipse 下开发的,

所以需要 Eclipse JDT Java Development tooling )插件来编译 Tomat 源代码。既然找不到,我们只好自己动手,上 Google 一搜,马上发现这个文件的有效下载地址为: http://mirror.calvin.edu/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip 。我们 打开 刚才的build.properties 文件,将其 34 行修改为:

jdt.loc= http://mirror.calvin.edu/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip

Tomcat 6.0.0 需要改这个,Tomcat 6.0.18 不需要改这个选项了

l  修改保存build.properties 文件后,重新开始ant download 任务。

这次我们等的时间较长,因为 eclipse-JDT-3.2.zip 大约有19M ,下载需要一段时间。

编译成功,虽然编译器给出几个警告。

……

BUILD SUCCESSFUL

Total time: 15 minutes 17 seconds

 

l  这时我们可发现刚才创建的base.path 目录(G:\tomcat_6.0.18\src\share )中已经下载了6 个依赖项目,它们都是Tomcat 编译所必须的。

l 配置代理

修改 build.properties 文件:添加如下内容

proxy.host=192.168.0.1

proxy.port=808

proxy.use=on

 

5  编译

请在MS-DOS 窗口内键入ant 并回车,

c:\apache-ant-1.7.1\bin\ant

 

Ant 将在2 分钟内编译1000 多个源文件并将Tomcat 部署到output 目录。

编译顺利完成后,请打开Tomcat 的源代码目录,会发现多了一个output 目录,这是Ant 的编译后的输出目录。

……

BUILD SUCCESSFUL

Total time: 1 minute 31 seconds

 

6  运行 tomcat

请打开Tomcat 源代码的output\build\bin 子目录,双击startup.bat 文件,我们即可成功启动Tomcat6.0 ,此时我们的编译工作就算顺利完成了。

http://127.0.0.1:8080/

 

7       导入源代码到 Eclipse

7.1   新建一个 Java 项目

请打开Eclipse ,新建一个Java 项目,请选择 Create project from existing source , 并在Directory 文本框内填入我们刚才下载的Tomcat 源代码目录(i.e. G:\tomcat_6.0.18\src) ,然后点击 Next 直至结束。

7.2 指定库文件

我们将会看到Eclipse 拒绝编译,这是因为Eclipse 找不到该项目指定的库文件。请右击该项目,在弹出菜单中选择 Properties => Libraries ,然后删除两个以TOMCAT_LIBS 开头的两个库文件,只保留一个JRE 库文件,然后点击 OK 按钮,这时Eclipse 开始编译Tomcat 源代码,但是发现一堆错误,这是因为我们没有为该项目添加编译所必须的Jar 包。

 

准备好 Tomcat 项目所必须的 jar 文件,其实,刚才我们运行 ant download 任务时,已经下载过这些 jar 文件包。

ant.jar

(请在 ant 安装目录的 lib 子目录中拷贝)

commons-collections-3.2.jar

(从刚才 Ant 下载的 share\commons-collections-3.2-src 子目录中拷贝)

commons-dbcp-1.2.2.jar

(从刚才 Ant 下载的 share\commons-dbcp-1.2.2-src 子目录中拷贝)

commons-logging-1.1.jar

(如果您本机没有这个 jar 包,请从 http://commons.apache.org/downloads/download_logging.cgi 处下载)

commons-pool-1.2.jar

(如果在刚才下载的 share\commons-pool-1.4-src 的目录中找不到,可以执行这个命令来得到 jar 文件 c:\apache-ant-1.7.1\bin\ant build-jar

org.eclipse.jdt.core_3.3.1.v_780_R33x.jar

(从刚才 Ant 下载的 share\eclipse\plugins 子目录中拷贝)

jaxrpc.jar

wsdl4j-1.5.1.jar

http://ws.apache.org/axis/ 下载。

 

 

当我们准备好这些 jar 文件后,将这些文件拷贝到某一目录(比如说 G:\tomcat_6.0.18\tomcat_lib 目录),

 

 

然后在 Eclipse 中新建一个 User Libraries ,我们将这个新建的 User Libraries 命名为 TOMCAT_LIBS ,并把这些文件加到 TOMCAT_LIBS 。然后将我们新建的 TOMCAT_LIBS 添加到 Tomcat6 项目。另外,别忘了把 JUnit 库也加到 Tomcat6 项目。这时 Eclipse 开始重新编译,编译过程顺利通过,所有错误均消失,此时 Tomcat6 项目的目录结构如下:

 

7.3   test 目录也加入到源代码中

方法是在 Eclipse 中右击” test ”目录,然后在弹出菜单中选择“ Build path => Use as Source Folder ”,之后我们会看到 test 目录上就多了个源代码的符号。

 

8       Eclipse 中运行 Tomcat

请找到 Tomcat 的启动主类 org.apache.catalina.startup.Bootstrap ,右击这个类,在弹出菜单中选择“ Run As …” => Open Run Dialog …”,然后在弹出的“ Run ”窗口中填入程序运行参数“ start ”和 JVM 运行参数 catalina.home

 

程序运行参数 :       start

JVM 运行参数 :      -Dcatalina.home="G:\tomcat_6.0.18\src"

 

然后点击“ Run ”按钮,我们将会看到 Tomcat 正常启动。恭喜,咱们的 Tomcat 源码已经成功导入 Eclipse ,这时,

 

9       调试 Tomcat

请打开org.apache.jasper.compiler.Compiler 类的源代码,在generateJava() 方法的第一行打一个断点,然后在Eclipse 的调试状态下运行Tomcat ,等Tomcat 运行后,打开我们的浏览器,在地址栏中输入http://localhost:8080/examples/jsp/jsp2/el/basic-comparisons.jsp 并回车,然后我们可观察到Eclipse 此时切换至调试视图:

上面的小实验表明我们可以在Eclipse 中通过Debugger 观察Tomcat 的内部运行机理。另外补充一点,上面的generateJava 方法是将jsp 动态编译至java class ,这个方法只是在第一次请求或者Jsp 源码发生变化时执行,如果您再次在浏览器中发送同样的请求,您将看不到上图的Debug 界面,因为该方法不再执行。


 

10             其他

JDK 版本引起的问题报如下错误:

 

    [javac] C:\tomcat_6.0.18\src\share\tomcat6-deps\dbcp\src\java\org\apache\tom

cat\dbcp\dbcp\datasources\PerUserPoolDataSource.java:52: org.apache.tomcat.dbcp.

dbcp.datasources.PerUserPoolDataSource 不是抽象的,并且未覆盖 java.sql.Wrapper

中的抽象方法 isWrapperFor(java.lang.Class<?>)

这是JDK 版本1.6 造成的。需要安装JDK 版本1.5.

安装1.5 之后,原来的1.6 不必卸载,

为了把两个版本的JDK 区别开,可以键入如下命令

set path=C:\Program Files\Java\jdk1.5.0_06\bin

set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_06

 

还有一点很有意思。

Tomcat6 以前版本的源代码分散在好几个子项目中,他们分别叫做jakarta-servletapi-5jakarta-tomcat-5jakarta-tomcat-catalinajakarta-tomcat-connectorsjakarta-tomcat-jasper ,我觉得Tomcat 的开发者可能嫌这样做太麻烦了,所以Tomcat6 版本中将这些子项目都合并在一起了。但是,这种做法不利于我们阅读理解源代码。

文章出处: http://www.diybl.com/course/4_webprogram/jsp/jsp_js/2008313/104405_5.html

 

分享到:
评论

相关推荐

    apache-tomcat-6.0.18

    1. 下载:首先,从官方或者可靠的源下载适用于您操作系统的Tomcat版本,如本例中的apache-tomcat-6.0.18.exe。 2. 安装:运行.exe文件,按照向导指示进行安装,选择合适的安装目录。 3. 配置:安装完成后,配置...

    tomcat 6.0.18

    【压缩包子文件的文件名称列表】"apache-tomcat-6.0.18" 指的是Tomcat的完整源代码和二进制文件的打包。这个压缩包内通常包含以下关键组件和目录: 1. `bin`:存放启动和停止Tomcat的脚本,如`catalina.sh`或`...

    Tomcat 6.0.18

    1. **Tomcat的角色**:Tomcat是一个开放源代码的Web应用服务器,主要负责处理基于Java的Web应用程序,如Servlets和JavaServer Pages (JSP)。它是Java EE(现在称为Jakarta EE)的一部分,提供了一个轻量级的服务器...

    从源码安装tomcat6018.pdf

    - **说明**:该命令将 Tomcat 6.0.18 的源代码从 SVN 仓库导出到本地目录 `G:\tomcat_6.0.18\src`。 - **源代码目录结构**: - `bin`:包含脚本文件。 - `conf`:包含 XML 和 properties 配置文件。 - `java`:...

    tomcat6.0.18源码+servlet API

    标题中的“tomcat6.0.18源码+servlet API”揭示了这个压缩包包含两个关键部分:Tomcat 6.0.18的源代码和Servlet API的中文文档。Tomcat是一款广泛使用的开源应用服务器,特别是用于部署Java Servlet和JavaServer ...

    apache-tomcat-6.0.18.zip

    5. **源码可用**:`apache-tomcat-6.0.18-src.zip`文件包含Tomcat的源代码,允许开发者深入研究其内部工作原理,进行定制化开发或者调试。 6. **签名验证**:`apache-tomcat-6.0.18-asc-md5.txt`文件提供了MD5校验...

    apache-tomcat-6.0.18源码

    通过深入研究Apache Tomcat 6.0.18的源码,开发者可以更好地了解Web应用的部署、请求处理流程、安全性以及性能优化等方面的知识,这对于开发和维护复杂的Java Web应用非常有帮助。同时,这也是学习Java EE规范和实践...

    Tomcat:apache-tomcat-6.0.18

    总之,"apache-tomcat-6.0.18"是Tomcat的一个重要版本,它为开发者提供了一个轻量级且高效的Java Web服务器平台,同时也为深入学习和定制提供了丰富的源代码资源。无论是初学者还是经验丰富的开发者,都能从中...

    tomcat6.0.18源码 (导入即用)

    《深入理解Tomcat 6.0.18:源码剖析与应用实践》 Tomcat 6.0.18是Apache软件基金会的Jakarta项目中的一个核心组件,是一款广泛使用的开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,为...

    tomcat-6.0.18 稳定好用,欢迎下载

    正如描述中所提到的,“公司所有的项目都是用这个版本,相当稳定”,这得益于Tomcat团队对代码质量的严格把控和对社区反馈的快速响应。在6.0.18版本中,众多的bug被修复,性能优化使得它在处理高并发请求时依然保持...

    在tomcat6.0.18下手动配置jndi

    在本教程中,我们将深入探讨如何在Tomcat 6.0.18这个特定版本下手动配置JNDI,以便为应用程序提供数据库连接或其他服务。 首先,我们需要理解JNDI的工作原理。JNDI提供了一个全局的命名空间,使得应用程序可以使用...

    tomcat-6.0.18-src

    【标题】"Tomcat-6.0.18-Src"是Apache Tomcat服务器的源代码版本,这个版本主要用于开发和深入理解Tomcat的工作机制。Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,...

    Tomcat6_0_18 源代码 src

    《深入剖析Tomcat6.0.18源代码》 Tomcat6.0.18作为Apache Tomcat服务器的一个重要版本,是Java EE Web应用程序容器的基石,它为开发和部署Java Servlets和JSP提供了可靠的平台。源代码的获取为开发者提供了深入理解...

    apache-tomcat-6.0.18-src

    apache-tomcat-6.0.18-srcapache-tomcat-6.0.18-srcapache-tomcat-6.0.18-srcapache-tomcat-6.0.18-srcapache-tomcat-6.0.18-src 难得得源码啊

    Apache-tomcat-6.0.18.rar

    在这个名为"Apache-tomcat-6.0.18.rar"的压缩包中,包含的是Apache Tomcat 6.0.18版本的源代码、配置文件和相关依赖,这是一个较旧但稳定版本的Tomcat。 **1. Tomcat简介** Apache Tomcat是Apache软件基金会的...

    apache-tomcat-6.0.18.rar

    Apache不仅代表了基金会本身,还暗示了该软件遵循开放源代码、社区驱动的开发模式,鼓励用户参与贡献和改进。 压缩包子文件的文件名称列表只有一个:"apache-tomcat-6.0.18.exe"。这表明在解压后,用户将获得一个可...

Global site tag (gtag.js) - Google Analytics