从源码安装
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
下键入:
这个命令的意思是把
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
行修改为:
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
,此时我们的编译工作就算顺利完成了。
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-5
,jakarta-tomcat-5
,jakarta-tomcat-catalina
,jakarta-tomcat-connectors
和jakarta-tomcat-jasper
,我觉得Tomcat
的开发者可能嫌这样做太麻烦了,所以Tomcat6
版本中将这些子项目都合并在一起了。但是,这种做法不利于我们阅读理解源代码。
文章出处:
http://www.diybl.com/course/4_webprogram/jsp/jsp_js/2008313/104405_5.html
分享到:
相关推荐
1. 下载:首先,从官方或者可靠的源下载适用于您操作系统的Tomcat版本,如本例中的apache-tomcat-6.0.18.exe。 2. 安装:运行.exe文件,按照向导指示进行安装,选择合适的安装目录。 3. 配置:安装完成后,配置...
【压缩包子文件的文件名称列表】"apache-tomcat-6.0.18" 指的是Tomcat的完整源代码和二进制文件的打包。这个压缩包内通常包含以下关键组件和目录: 1. `bin`:存放启动和停止Tomcat的脚本,如`catalina.sh`或`...
1. **Tomcat的角色**:Tomcat是一个开放源代码的Web应用服务器,主要负责处理基于Java的Web应用程序,如Servlets和JavaServer Pages (JSP)。它是Java EE(现在称为Jakarta EE)的一部分,提供了一个轻量级的服务器...
- **说明**:该命令将 Tomcat 6.0.18 的源代码从 SVN 仓库导出到本地目录 `G:\tomcat_6.0.18\src`。 - **源代码目录结构**: - `bin`:包含脚本文件。 - `conf`:包含 XML 和 properties 配置文件。 - `java`:...
标题中的“tomcat6.0.18源码+servlet API”揭示了这个压缩包包含两个关键部分:Tomcat 6.0.18的源代码和Servlet API的中文文档。Tomcat是一款广泛使用的开源应用服务器,特别是用于部署Java Servlet和JavaServer ...
5. **源码可用**:`apache-tomcat-6.0.18-src.zip`文件包含Tomcat的源代码,允许开发者深入研究其内部工作原理,进行定制化开发或者调试。 6. **签名验证**:`apache-tomcat-6.0.18-asc-md5.txt`文件提供了MD5校验...
通过深入研究Apache Tomcat 6.0.18的源码,开发者可以更好地了解Web应用的部署、请求处理流程、安全性以及性能优化等方面的知识,这对于开发和维护复杂的Java Web应用非常有帮助。同时,这也是学习Java EE规范和实践...
总之,"apache-tomcat-6.0.18"是Tomcat的一个重要版本,它为开发者提供了一个轻量级且高效的Java Web服务器平台,同时也为深入学习和定制提供了丰富的源代码资源。无论是初学者还是经验丰富的开发者,都能从中...
《深入理解Tomcat 6.0.18:源码剖析与应用实践》 Tomcat 6.0.18是Apache软件基金会的Jakarta项目中的一个核心组件,是一款广泛使用的开源Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,为...
正如描述中所提到的,“公司所有的项目都是用这个版本,相当稳定”,这得益于Tomcat团队对代码质量的严格把控和对社区反馈的快速响应。在6.0.18版本中,众多的bug被修复,性能优化使得它在处理高并发请求时依然保持...
在本教程中,我们将深入探讨如何在Tomcat 6.0.18这个特定版本下手动配置JNDI,以便为应用程序提供数据库连接或其他服务。 首先,我们需要理解JNDI的工作原理。JNDI提供了一个全局的命名空间,使得应用程序可以使用...
【标题】"Tomcat-6.0.18-Src"是Apache Tomcat服务器的源代码版本,这个版本主要用于开发和深入理解Tomcat的工作机制。Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,...
《深入剖析Tomcat6.0.18源代码》 Tomcat6.0.18作为Apache Tomcat服务器的一个重要版本,是Java EE Web应用程序容器的基石,它为开发和部署Java Servlets和JSP提供了可靠的平台。源代码的获取为开发者提供了深入理解...
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版本的源代码、配置文件和相关依赖,这是一个较旧但稳定版本的Tomcat。 **1. Tomcat简介** Apache Tomcat是Apache软件基金会的...
Apache不仅代表了基金会本身,还暗示了该软件遵循开放源代码、社区驱动的开发模式,鼓励用户参与贡献和改进。 压缩包子文件的文件名称列表只有一个:"apache-tomcat-6.0.18.exe"。这表明在解压后,用户将获得一个可...