广告位联系
返回顶部
分享到

Tomcat源码导入idea的方法介绍

Tomcat 来源:转载 作者:秩名 发布时间:2021-10-02 18:24:57 人浏览
摘要

1.下载tomcat代码 本文选择9.0分支,此版本servlet还是javax开头的 github 2.下载之后的目录结构 3.源码使用ant构建(这里改用pom) project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation

1.下载tomcat代码

本文选择9.0分支,此版本servlet还是javax开头的 

2.下载之后的目录结构

在这里插入图片描述

3.源码使用ant构建(这里改用pom)

<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>tomcat</artifactId>
  <name>tomcat</name>
  <version>9.0.19</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <version>1.10.11</version>
    </dependency>
    <dependency>
      <groupId>wsdl4j</groupId>
      <artifactId>wsdl4j</artifactId>
      <version>1.6.3</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/javax.xml.soap/javax.xml.soap-api -->
    <dependency>
      <groupId>javax.xml.soap</groupId>
      <artifactId>javax.xml.soap-api</artifactId>
      <version>1.4.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jaxrpc_1.1_spec</artifactId>
      <version>2.1</version>
    </dependency>

    <dependency>
      <groupId>org.eclipse.jdt</groupId>
      <artifactId>ecj</artifactId>
      <version>3.17.0</version>
    </dependency>


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

    <dependency>
      <groupId>biz.aQute.bnd</groupId>
      <artifactId>biz.aQute.bndlib</artifactId>
      <version>5.2.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>com.unboundid</groupId>
      <artifactId>unboundid-ldapsdk</artifactId>
      <version>3.2.0</version>
    </dependency>
  </dependencies>

</project>

直接使用idea重新导入,jdk暂时选择1.8

4.问题解决

4.1控制台乱码

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
九月 29, 2021 3:52:17 上午 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
警告: 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[149]毫秒。

九月 29, 2021 3:52:17乱码 修改conf/logging.properties的编码(现在默认utf-8,基本无修改) 警告: 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[149]毫秒 乱码

 

这里的乱码本质原因是properties文件乱码,tomcat采用系统的读取配置文件方式,使用的是URL.openStream,然后采用properties.load方法,这样会导致乱码

解决方案

把两个国际化文件读取重写Localizer、StringManager

4.2访问8080报错jsp等class找不到

 
org.apache.catalina.startup.ContextConfig#configureStart方法加一句代码
//TODO 手工加的
        context.addServletContainerInitializer(new JasperInitializer(), null);

在这里插入图片描述

5.访问localhost:8080

在这里插入图片描述



注意点,有其他编译选项发,jdk11-16可以直接注释,其他报错正常解决就行


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/weixin_43328357/article/details/120540910
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计