Tomcat源码导入idea的方法

 更新时间:2021年09月29日 11:05:31   作者:平原人  
这篇文章主要介绍了Tomcat源码导入idea的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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="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可以直接注释
其他报错正常解决就行

到此这篇关于Tomcat源码导入idea的文章就介绍到这了,更多相关Tomcat源码导入idea内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • tomcat+nginx实现多应用部署的示例代码

    tomcat+nginx实现多应用部署的示例代码

    本文主要介绍了tomcat+nginx实现多应用部署的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 使用tomcat设定shared lib共享同样的jar

    使用tomcat设定shared lib共享同样的jar

    这篇文章主要介绍了使用tomcat设定shared lib共享同样的jar操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Tomcat请求的资源[/XXX/]不可用问题解决方法(适合小白)

    Tomcat请求的资源[/XXX/]不可用问题解决方法(适合小白)

    这篇文章主要给大家介绍了关于Tomcat请求的资源[/XXX/]不可用问题解决方法,文中介绍的方法非常适合小白,文中介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • 阿里云服务器Tomcat无法访问的问题

    阿里云服务器Tomcat无法访问的问题

    这篇文章主要介绍了阿里云服务器Tomcat无法访问的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • CentOS设置IP连接网络实现过程图解

    CentOS设置IP连接网络实现过程图解

    这篇文章主要介绍了CentOS设置IP连接网络实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 使用Tomcat无法访问http:localhost:8080的解决方法

    使用Tomcat无法访问http:localhost:8080的解决方法

    本文主要介绍了使用Tomcat无法访问http:localhost:8080的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 解决Tomcat启动报错:严重:Unable to process Jar entry [META-INF/versions/9/module-info.class]

    解决Tomcat启动报错:严重:Unable to process Jar entry [META-INF/v

    这篇文章主要介绍了解决Tomcat启动报错:严重:Unable to process Jar entry [META-INF/versions/9/module-info.class]问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Tomcat中使用ipv6地址的示例代码

    Tomcat中使用ipv6地址的示例代码

    在公司的一次项目改造过程中,需要将原来的IPV6替换成IPV4,本文就详细的介绍Tomcat中使用ipv6地址的示例代码,具有一定的参考价值,感兴趣的可以了解一下
    2022-05-05
  • 浅谈Tomcat7的热部署

    浅谈Tomcat7的热部署

    这篇文章主要介绍了浅谈Tomcat7的热部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Tomcat多实例与负载均衡示例详解

    Tomcat多实例与负载均衡示例详解

    这篇文章主要介绍了Tomcat多实例与负载均衡,在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境,具体内容详情跟随小编一起看看吧
    2022-04-04

最新评论