侧边栏壁纸
博主头像
程序员の小站博主等级

行动起来,活在当下

  • 累计撰写 51 篇文章
  • 累计创建 35 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Tomcat -- 源码搭建

Administrator
2024-10-24 / 0 评论 / 0 点赞 / 1 阅读 / 6135 字
温馨提示:
本文最后更新于 2024-10-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 源码下载

官网下载
image.png
image.png

2. 使用Maven搭建源码环境

在解压后的目录下新建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>apache‐tomcat‐8.5.42‐src</artifactId> 
	<name>Tomcat8.5</name> 
	<version>8.5</version>



	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>

		<dependency>
		 <groupId>org.easymock</groupId> 
		 <artifactId>easymock</artifactId> 
		 <version>3.4</version> 
		</dependency>

		<dependency>
		 <groupId>ant</groupId> 
		 <artifactId>ant</artifactId> 
		 <version>1.7.0</version> 
		</dependency>

		<dependency>
		 <groupId>wsdl4j</groupId> 
		 <artifactId>wsdl4j</artifactId> 
		 <version>1.6.2</version> 
		</dependency>

		<dependency>
		 <groupId>javax.xml</groupId> 
		 <artifactId>jaxrpc</artifactId> 
		 <version>1.1</version> 
		</dependency>

		<dependency>
		 <groupId>org.eclipse.jdt.core.compiler</groupId> 
		 <artifactId>ecj</artifactId> 
		 <version>4.5.1</version> 
		</dependency>

	</dependencies>


	<build>

		<finalName>Tomcat8.5</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>
</project>

使用idea打开源码环境,并配置启动类org.apache.catalina.startup.Bootstrap
image.png

修改配置文件和根目录
在源码的根目录下新建home文件夹。将confwebapps文件夹移动到home的路径下
image.png

在应用启动类下配置java虚拟机的相关参数

-Dcatalina.home=D:\e10-seconddev-study\apache-tomcat-8.5.42-src\home  
-Dcatalina.base=D:\e10-seconddev-study\apache-tomcat-8.5.42-src\home  
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager  
-Djava.util.logging.config.file=D:\e10-seconddev-study\apache-tomcat-8.5.42-src\home\conf\logging.properties

image.png

image.png

3. 问题处理

3.1 访问首页错误

启动成功后,在访问首页的时候,出现了500错误,而且提示无法为JSP编译类。
image.png
出现上述异常的原因,是我们直接启动org.apache.catalina.startup.Bootstrap的时候没有加载JasperInitializer,从而无法编译JSP。解决办法是在tomcat的源码ContextConfig 中的configureStart函数中手动将JSP解析器初始化:context.addServletContainerInitializer(new JasperInitializer(), null);
image.png

0

评论区