当前位置:天才代写 > tutorial > JAVA 教程 > Tomcat 8源码编译及导入Eclipse中研究

Tomcat 8源码编译及导入Eclipse中研究

2017-11-02 08:00 星期四 所属: JAVA 教程 浏览:774

最近因为需求需要修改Tomcat中的某些成果,无奈只能研究那部门源码然后稍作修改。

今朝Tomcat最新版是8.0,下载了源码包,编译并导入Eclipse中研究较量利便。

1. Tomcat8源码编译步调1.1 先到Apache Tomcat 8.0官网下载最新版Source Code Distributions,解压到某个目次下,如D:\apache-tomcat-8.0.5-src

1.2 利用ant编译

(1)安装ant

假如呆板上已经安装了ant可以省略这一步,不然去ant官网下载最新版ant Binary Distributions,解压到某个目次下,如D:\Program Files\apache-ant-1.9.3,然后设置情况变量。要么新建个ANT_HOME,值为ant路径,然后在PATH中添加ant bin路径为%ANT_HOME%/bin,要么直接在PATH中添加ant bin路径为D:\Program Files\apache-ant-1.9.3\bin。设置好后,在cmd下运行ant -version,假如显示版本说明设置乐成,我们就可以随地利用ant了。

(2)编译Tomcat 8.0

很是简朴,cmd进入到刚下载的源码路径下,用下面两个呼吁即可编译:

ant download

ant"ant download"呼吁会下载编译Tomcat所需的依赖包。

这里有两个问题需要留意:

依赖包下载到什么处所?在Linux或MacOX下,会默认下载到 “/usr/share/java” 目次,虽然该目次普通用户是没有权限写的;在Windows下,默认下载到 "某个磁盘:\usr\share\java" ,这的磁盘大概是C、D或其它,这一般取决于你把Tomcat源码放在哪个盘了,好比我的放在D盘,默认就下载在 "D:\usr\share\java" 下。假如我想本身界说下载路径怎么办?

假如用户是通过署理上网的,那么下载进程中就会堕落。怎么办理?

熟悉ant的人应该知道怎么办理,就是通过设置文件build.properties来配置。该设置文件在Tomcat源码路径下为 “build.properties.default” ,我们可以去掉.default后缀或直接新建一个build.properties都可以,虽然我选择了前者,将 “build.properties.default” 修改为 “build.properties” 打开, 修改内里的base.path属性值为我们但愿的下载路径并添加proxy署理设置,名目如下:

# —– Proxy setup —–

# Uncomment if using a proxy server

proxy.host=proxy.domain

proxy.port=8080

proxy.use=on

# —– Default Base Path for Dependent Packages —–

# Replace this path with the directory path where dependencies binaries

# should be downloaded

base.path=/home/me/some-place-to-download-to按照本身的需要举办配置,留意假如不需要某项配置需要用#注释掉。

依赖包下载乐成后(假如下载失败可以多试屡次),执行ant即可编译,编译乐成后当前路径下回多出个output文件夹,就是我们的编译功效。

附:

①假如你修改了部门源码,需要从头编译 ,直接进入到源码路径,执行ant呼吁即可。

②假如需要编译servlet和jsp API文档,进入到源码路径下执行如下呼吁:

ant -f dist.xml dist-javadoc③假如需要编译extras扩展成果(commons-logging, webservices etc.),进入到源码路径下执行如下呼吁:

ant -f extras.xml④假如需要编译成release版本,进入到源码路径下执行如下呼吁:

ant -f dist.xml release

2. 将Tomcat源码导入到Eclipse中研究由于Tomcat不是Eclipse打点的项目,因此不能直接导入,需要新建一个Java项目,好比为Tomcat8,这时有两种要领就源码导入进来。

第一种:将所需要的源码包java和test(Junit测试用例,可选)两个文件夹直接拷贝到src下。

第二种:选择File – > import -> File System,在From directory中选择tomcat源码包中的java和test两个文件夹,在Into folder中选择我们刚新建的Tomcat8项目,Finish,然跋文得将这两个文件夹标志为source code(怎么标志?右键选择者文件夹 -> Build Path -> Use as Source Folder)。

虽然这样事后就不是完事了,这时会发明整个项目许多红叉,也就是缺少依赖包,在Build Path里加上下面的几个依赖包即可:

Java包需要下面四个jar包,留意版本大概纷歧样:

ant.jar

jaxrpc.jar

org.eclipse.jdt.core_3.8.3.v20130121-145325.jar

wsdl4j-1.5.1.jartest包里需要junit.jar,直接“Add Libraries…”选择Junit即可:

junit.jar虽然也可以在Eclipse中启动Tomcat,要领如下:

找到类:org.apache.catalina.startup.Bootstrap.java,从名字上也可以看出是启动类,假如你此时直接运行该类,会报如下错误:

Apr 02, 2014 3:27:38 PM org.apache.catalina.startup.ClassLoaderFactory validateFile

WARNING: Problem with directory [D:\workspace\Tomcat8\lib], exists: [false], isDirectory: [false], canRead: [false]

Apr 02, 2014 3:27:38 PM org.apache.catalina.startup.ClassLoaderFactory validateFile

WARNING: Problem with directory [D:\workspace\Tomcat8\lib], exists: [false], isDirectory: [false], canRead: [false]

Apr 02, 2014 3:27:40 PM org.apache.catalina.startup.Catalina load

WARNING: Can’t load server.xml from D:\workspace\Tomcat8\conf\server.xml

Apr 02, 2014 3:27:40 PM org.apache.catalina.startup.Catalina load

WARNING: Can’t load server.xml from D:\workspace\Tomcat8\conf\server.xml

Apr 02, 2014 3:27:40 PM org.apache.catalina.startup.Catalina start

#p#分页标题#e#

SEVERE: Cannot start server. Server instance is not configured.说没有设置处事器实例,从告诫语句可以知道原因:当前项目路径下没有lib和conf这两个文件夹,从而找不随处事器设置文件server.xml,虽然也就不能实例化处事器了。

办理要领有两个:

①将这两个文件夹直接拷贝到项目工程下

那么这两个文件夹在哪?去Tomcat源码路径里我们可以看到只有conf设置文件夹没有lib文件夹,其实这也是我编译Tomcat的原因:lib在编译后的output文件夹中的build文件夹里,conf这里也有。虽然你也可以直接从官网下载二进制包,内里是编译好的Tomcat,根路径就有这两个文件夹。将build下面的conf和lib文件夹直接拷贝到项目里,再次运行,启动乐成。

Apr 02, 2014 3:37:58 PM org.apache.catalina.core.AprLifecycleListener init

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\TortoiseGit\bin;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;D:\Program Files\Gow\bin;D:\Program Files\Visual Leak Detector\bin\Win32;D:\Program Files\Visual Leak Detector\bin\Win64;D:\Program Files\Java\jdk1.7.0_51\\bin;D:\Program Files\apache-maven-3.2.1\bin;D:\Program Files\Git\cmd;.

Apr 02, 2014 3:38:00 PM org.apache.coyote.http11.Http11Protocol init

INFO: Initializing Coyote HTTP/1.1 on http-8080

Apr 02, 2014 3:38:00 PM org.apache.catalina.startup.Catalina load

INFO: Initialization processed in 2254 ms

Apr 02, 2014 3:38:00 PM org.apache.catalina.core.StandardService start

INFO: Starting service Catalina

Apr 02, 2014 3:38:00 PM org.apache.catalina.core.StandardEngine start

INFO: Starting Servlet Engine: Apache Tomcat/@VERSION@

Apr 02, 2014 3:38:00 PM org.apache.coyote.http11.Http11Protocol start

INFO: Starting Coyote HTTP/1.1 on http-8080

Apr 02, 2014 3:38:00 PM org.apache.jk.common.ChannelSocket init

INFO: JK: ajp13 listening on /0.0.0.0:8009

Apr 02, 2014 3:38:00 PM org.apache.jk.server.JkMain start

INFO: Jk running ID=0 time=0/29 config=null

Apr 02, 2014 3:38:00 PM org.apache.catalina.startup.Catalina start

INFO: Server startup in 386 ms②添加VM虚拟机运行参数

第二种要领就是添加VM参数,指定这两个文件夹的详细路径,用VM的-D参数指定catalina.home属性值为详细的路径,详细要领如下:

Run as -> Run Configuration… – > Arguments -> VM arguments中配置:

-Dcatalina.home="D:/apache-tomcat-8.0.5-src/output/build"

然后Run就可以启动了

作者:cnblogs Alexia(minmin)

 

    关键字:

天才代写-代写联系方式