sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

https://www.cnblogs.com/liangsw-2018/p/12675909.html

                                        <h2>一、环境准备:</h2>

Win10、Eclipse、JDK1.8、apache-tomcat-9.0.20-src源码包

二、搭建

1、解压源码包:

2、创建pom.xml文件:

   apache-tomcat-9.0.20-src根目录下创建pom.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>
	<groupId>org.apache.tomcat</groupId>
	<artifactId>Tomcat9.0</artifactId>
	<name>Tomcat9</name>
	<version>9.0.20</version>

	<build>
		<finalName>Tomcat9</finalName>
		<sourceDirectory>java</sourceDirectory>
		<resources>
			<resource>
				<directory>java</directory>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3</version>
				<configuration>
					<encoding>UTF-8</encoding>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.apache.ant</groupId>
			<artifactId>ant</artifactId>
			<version>1.10.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.ant</groupId>
			<artifactId>ant-apache-log4j</artifactId>
			<version>1.9.5</version>
		</dependency>
		<dependency>
			<groupId>org.apache.ant</groupId>
			<artifactId>ant-commons-logging</artifactId>
			<version>1.9.5</version>
		</dependency>
		<dependency>
			<groupId>javax.xml.rpc</groupId>
			<artifactId>javax.xml.rpc-api</artifactId>
			<version>1.1</version>
		</dependency>
		<dependency>
			<groupId>wsdl4j</groupId>
			<artifactId>wsdl4j</artifactId>
			<version>1.6.2</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jdt.core.compiler</groupId>
			<artifactId>ecj</artifactId>
			<version>4.6.1</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.easymock</groupId>
			<artifactId>easymock</artifactId>
			<version>4.0.2</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

3、将项目导入Eclipse

4. 设置Java源代码路径

apache-tomcat-9.0.20-src文件夹结构,源代码在java文件夹,测试代码在test文件夹。将java文件夹设置为项目的Source Folder,让Eclipse知道从此文件夹去找java类。

在java文件夹上右键->Build Path->Use as Source Folder,如图:

5. 设置Test源代码路径

Tomcat的单元测试代码放在test文件夹,如果需要查看,则需要将test文件夹以同样的方式设置为Source Folder:

 

设置好后,报编译错误,说有个CookieFilter的类找不到:

仔细观察TestCookieFilter类,发现import中没有声明导入这个CookieFilter,使用Eclipse的组合键Ctrl+Shift+R并输入文件名CookieFilter,尝试打开Workspace内的Resource:CookieFilter.java,注意查看此文件的路径:

 

CookieFilter.java的路径:webapps/examples/WEB-INF/class文件夹的util包,打开这个class文件夹,发现此处存在好多Java代码,这些应该都是运行测试需要的。我们把这个webapps/examples/WEB-INF/classes也设置为Source Folder,让Eclipse可以去这里查找Java文件:

 

这次CookieFilter找到了,刚才的错误消失了,但是又发现一个错误,有个bug类的包路径不对:

 

一看上方的package声明,该类应该放在org.apache.tomcat路径下,再看看这个类目前的位置,在webapp/WEB-INF/classes/org/apache/tomcat路径下,所以就把webapp/WEB-INF/classes设置为Source Folder:

 

最后,就不报错了。再来看下最后的结果,整个过程中,我们总共把4个文件夹设置成了Source Folder,其中:

  • java文件夹是Tomcat源代码的目录
  • 后面三个文件夹是Tomcat测试代码的目录

验证

启动日志验证

组合键Ctrl+Shift+R打开Tomcat的启动类org.apache.catalina.startup.Bootstrap,运行main()方法;

浏览器验证

Tomcat启动好以后,浏览器地址栏输入127.0.0.1:8080,再次确认Tomcat是否启动成功!

 

参考链接:https://my.oschina.net/itblog/blog/1528123

posted on 2021-04-29 19:06  sunny123456  阅读(171)  评论(0编辑  收藏  举报