本地构建Tomcat9.x源码环境

admin 2024年9月22日13:07:00评论5 views字数 4405阅读14分41秒阅读模式
本地构建Tomcat9.x源码环境

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!

本地构建Tomcat9.x源码环境

tomcat9.0.x的布置有视频,一步一步调试的,比较详细。如果看下面步骤有疑问的可以跟着这个师傅搭建环境。
tomcat9.0.x源码阅读环境搭建(乱码问题需要修改源码解决,视频有具体讲解)https://www.bilibili.com/video/BV1ST4y177Tx

源码下载地址:https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.43/src/

maven环境搭建

源码导入idea,根目录创建pom.xml文件,添加依赖:

本地构建Tomcat9.x源码环境

本地构建Tomcat9.x源码环境

创建一个Tomcat的实例运行文件catalina-home

本地构建Tomcat9.x源码环境

在Catalina-home文件中创建这几个文件夹,bin、conf、 webapps 应该是从apache-tomcat-9.0.43-src复制过来的。

除了conf目录其他都是可选的,webapps用于我们应用默认的部署目录,work logs是启动Tomcat自动生成的,其结构跟我们下载的二进制Tomcat程序是一样的.

本地构建Tomcat9.x源码环境

创建一个pom.xml文件,用来配置maven依赖。

本地构建Tomcat9.x源码环境

<module>标签里的内容就是我们解压的Tomcat源码文件的文件名

<?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>gxf</groupId>
<artifactId>apache-tomcat-9</artifactId>
<name>apache-tomcat-9-source</name>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>apache-tomcat-9.0.43-src</module>
</modules>
</project>

在Tomcat源码文件中创建一个pom.xml文件,用来引入依赖。

本地构建Tomcat9.x源码环境

<?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.43</artifactId>
<name>Tomcat9.0.43</name>
<version>9.0</version>


<build>
<finalName>Tomcat9.0</finalName>
<sourceDirectory>java</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
<resources>
<resource>
<directory>java</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>test</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>

<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.5</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</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.6.1</version>
</dependency>
<dependency>
<groupId>biz.aQute.bnd</groupId>
<artifactId>biz.aQute.bndlib</artifactId>
<version>5.2.0</version>
<scope>provided</scope>
</dependency>

</dependencies>
</project>

等待idea将项目构建好

本地构建Tomcat9.x源码环境

配置启动

Main class设置为org.apache.catalina.startup.Bootstrap

添加VM options
-Dcatalina.home=D:try_testjava_demotomcat_9.0.43catalina-home
-Dcatalina.base=D:try_testjava_demotomcat_9.0.43catalina-home
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=D:try_testjava_demotomcat_9.0.43catalina-home/conf/logging.properties
-Dfile.encoding=UTF-8
-Dsun.jnu.encoding=UTF-8

本地构建Tomcat9.x源码环境

问题解决:tomcat java: 程序包sun.rmi.registry不存在

本地构建Tomcat9.x源码环境

java: 找不到符号
符号: 变量 VERSION_9
位置: 类 org.eclipse.jdt.internal.compiler.impl.CompilerOptions

本地构建Tomcat9.x源码环境

解决:屏蔽不需要的版本
比如我用jdk1.8,后面都屏蔽了

本地构建Tomcat9.x源码环境

下面还有一块

本地构建Tomcat9.x源码环境

java: 程序包trailers不存在

https://www.cnblogs.com/jhxxb/p/10768580.html

ResponseTrailers 找不到,把 homewebappsexamplesWEB-INFclassestrailers 目录拷贝到 test 目录下

本地构建Tomcat9.x源码环境

CookieFilter 找不到,把 homewebappsexamplesWEB-INFclassesutilCookieFilter.java 文件拷贝到 testutil 目录下

运行tomcat,访问,报错500

本地构建Tomcat9.x源码环境

本地构建Tomcat9.x源码环境

D:try_testjava_demotomcat_9.0.43apache-tomcat-9.0.43-srcjavaorgapachecatalinastartupContextConfig.java

org.apache.catalina.startup.ContextConfig#configureStart

        // 加上jsper初始化解析器
context.addServletContainerInitializer(new JasperInitializer(), null);

本地构建Tomcat9.x源码环境

ok

本地构建Tomcat9.x源码环境

参考链接

https://www.cnblogs.com/wk-missQ1/p/13138720.html
https://blog.csdn.net/ganquanzhong/article/details/107267894
导入tomcat源码:程序包aQute.bnd.annotation.spi不存在 https://blog.csdn.net/lazy_cat_go/article/details/113694812
https://www.bilibili.com/video/BV1ST4y177Tx

往期推荐

HTTP请求走私(内含portswigger靶场即工具)

漏洞利用 | jmx协议攻击方式

分析Actuator未授权出现的原因

代码审计 | API批量分配导致的普通用户垂直越权到admin

代码审计 | 发现项目的swagger-ui未授权访问

记一次绕过限制SQL注入bypass

好用!一键化搭建各种虚拟机

Windows上搭建黑苹果(非从头开始)以及一些心得

微信小程序/网页动态调试的方法

原文始发于微信公众号(进击的HACK):本地构建Tomcat9.x源码环境

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月22日13:07:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   本地构建Tomcat9.x源码环境http://cn-sec.com/archives/3167215.html

发表评论

匿名网友 填写信息