IDEA运行Tomcat8.5.x源码

IDEA运行Tomcat8.5.x源码

准备

添加pom.xml&catalina-home目录

  • 在源码根目录添加pom.xml(依赖maven进行构建)
<?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>Tomcat8.5</artifactId>
    <name>Tomcat8.5</name>
    <version>8.5</version>
 
    <build>
        <finalName>Tomcat8.5</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>2.3</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
 
    <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>4.2</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>
</project>
  • 在源码根目录创建catalina-home,如图所示
    在这里插入图片描述

注:将源码conf和webapps文件夹复制到catalina-home目录中

设置运行环境

  • 设置启动参数

    -Dcatalina.home=catalina-home -Dcatalina.base=catalina-home -Djava.endorsed.dirs=catalina-home/endorsed -Djava.io.tmpdir=catalina-home/temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=catalina-home/conf/logging.properties
    

    参考配置如图:
    在这里插入图片描述

    注:可直接ctrl+shift+n搜索Bootstrap进行相关设置

  • 注释TestCookieFilter相关测试方法(编译报错)

在这里插入图片描述

  • 手动初始化JSP解析器

    修改org.apache.catalina.startup.ContextConfig 方法 configureStart

    context.addServletContainerInitializer(new JasperInitializer(), null);
    

在这里插入图片描述

注:此时已可直接运行Bootstrap进行访问(访问地址:http://localhost:8080),但会发现启动控制台打印日志有乱码的情况(ide默认设置UTF-8的原因,Tomcat默认编码为ISO-8859-1)

转换字符串编码

  • ctrl+shift+n搜索所有的StringManager(所有的均需要修改),添加相关代码

    // 解决日志打印乱码问题,默认编码(ISO-8859-1)修改为UTF-8
    try {
    	value = new String(value.getBytes("ISO-8859-1"), "UTF-8");
    }catch(Exception e){
    	e.printStackTrace();
    }
    

在这里插入图片描述
在这里插入图片描述

  • 修改org.apache.jasper.compiler.Localizer的getMessage(String errCode)方法

    try {
    	errMsg = new String(errMsg.getBytes("ISO-8859-1"), "UTF-8");
    }catch(Exception e){
    	e.printStackTrace();
    }
    

在这里插入图片描述
参考:

IDEA运行tomcat8.5.35源代码

记一次tomcat源码启动控制台中文乱码问题调试过程

要解决Tomcat 8.5.93版本控制台乱码的问题,可以参考以下步骤: 1. 打开Tomcat安装目录下的`bin`文件夹,找到`catalina.bat`文件。 2. 在`catalina.bat`文件中找到第一行的注释,并在该行下方添加以下代码:`set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8` 。 3. 保存并关闭`catalina.bat`文件。 4. 重新启动Tomcat服务器,检查控制台是否仍然显示乱码。 另外,你还可以尝试以下方法来解决乱码问题: 1. 确保你的开发工具(如IDEA)的编码设置为UTF-8 。 2. 检查你的项目中是否有任何乱码问题,例如在JSP文件或Java源代码中的中文字符。 3. 检查Tomcat的配置文件`server.xml`。在`<Connector>`标签中添加以下属性:`URIEncoding="UTF-8"` 。 4. 如果你使用的是自定义日志记录器(如log4j),请确保配置文件中的编码设置正确。 通过以上步骤,你应该能够解决Tomcat 8.5.93版本控制台乱码问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Tomcat8.5.55中文乱码解决方案](https://blog.csdn.net/weixin_44399790/article/details/112280809)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [tomcat8.5:Tomcat8.5源码解析-源码解析](https://download.csdn.net/download/weixin_42118160/16077792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值