zoukankan      html  css  js  c++  java
  • 搭建apachetomcat9.0.20src源码执行环境

    一、环境准备:

    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

  • 相关阅读:
    关于application/x-www-form-urlencoded编码
    socket 状态
    TCP/IP三次握手详解
    一步步优化JVM四:决定Java堆的大小以及内存占用
    编码问题
    git 应用
    父与子继承
    python try except
    python 编码问题
    requests 库使用方法
  • 原文地址:https://www.cnblogs.com/liangsw-2018/p/12675909.html
Copyright © 2011-2022 走看看