• 使用idea搭建Tomcat源码运行环境


    我自己编译的源码路径:https://github.com/LoveWK/myTomcat.git

    1.首先从官网上下载Tomcat的源码包

     

     2.下载完成后解压到本地文件

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

     4.在Catalina-home文件中创建这几个文件夹

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

      5.创建一个pom.xml文件,用来配置maven依赖,<module>标签里的内容就是我们解压的Tomcat源码文件的文件名

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5 
     6     <modelVersion>4.0.0</modelVersion>
     7     <groupId>gxf</groupId>    
     8     <artifactId>apache-tomcat-8</artifactId>    
     9     <name>apache-tomcat-8-source</name>    
    10     <version>1.0</version>    
    11     <packaging>pom</packaging> 
    12     <modules>    
    13         <module>apache-tomcat-8.5.56-src</module>    
    14     </modules>    
    15 </project>

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

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5 
     6     <modelVersion>4.0.0</modelVersion>
     7     <groupId>org.apache.tomcat</groupId>
     8     <artifactId>Tomcat8.5.56</artifactId>
     9     <name>Tomcat8.5.56</name>
    10     <version>8.5</version>
    11 
    12 
    13     <build>    
    14         <finalName>Tomcat8.0</finalName>    
    15         <sourceDirectory>java</sourceDirectory>    
    16         <testSourceDirectory>test</testSourceDirectory>    
    17         <resources>    
    18             <resource>    
    19                 <directory>java</directory>    
    20             </resource>    
    21         </resources>    
    22         <testResources>    
    23             <testResource>    
    24                 <directory>test</directory>    
    25             </testResource>    
    26         </testResources>    
    27         <plugins>    
    28             <plugin>    
    29                 <groupId>org.apache.maven.plugins</groupId>    
    30                 <artifactId>maven-compiler-plugin</artifactId>    
    31                 <version>2.0.2</version>    
    32     
    33                 <configuration>    
    34                     <encoding>UTF-8</encoding>    
    35                     <source>1.8</source>    
    36                     <target>1.8</target>    
    37                 </configuration>    
    38             </plugin>    
    39         </plugins>    
    40     </build>    
    41 
    42    <dependencies>  
    43         <dependency>  
    44             <groupId>org.easymock</groupId>  
    45             <artifactId>easymock</artifactId>  
    46             <version>3.5</version>  
    47             <scope>test</scope>  
    48         </dependency>  
    49   
    50         <dependency>    
    51             <groupId>junit</groupId>    
    52             <artifactId>junit</artifactId>    
    53             <version>4.12</version>  
    54             <scope>test</scope>    
    55         </dependency>    
    56         <dependency>    
    57             <groupId>ant</groupId>    
    58             <artifactId>ant</artifactId>    
    59             <version>1.7.0</version>    
    60         </dependency>    
    61         <dependency>    
    62             <groupId>wsdl4j</groupId>    
    63             <artifactId>wsdl4j</artifactId>    
    64             <version>1.6.2</version>    
    65         </dependency>    
    66         <dependency>    
    67             <groupId>javax.xml</groupId>    
    68             <artifactId>jaxrpc</artifactId>    
    69             <version>1.1</version>    
    70         </dependency>    
    71         <dependency>    
    72             <groupId>org.eclipse.jdt.core.compiler</groupId>    
    73             <artifactId>ecj</artifactId>    
    74             <version>4.6.1</version>  
    75         </dependency>    
    76     </dependencies>    
    77 </project>

     7.开始使用maven构建项目

     

     8.等待idea将项目构建好

       在构建的过程当中,会出现如下图的错误,直接注释掉用到CookieFilter的行数即可。

     9.开始对项目进行配置

     

     

     

     配置启动参数:

    -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

     

     配置完成后,启动项目:

     打开浏览器访问服务,发现报500错误

    这个原因是因为我们直接启动org.apache.catalina.startup.Bootstrap的时候没有加载org.apache.jasper.servlet.JasperInitializer,从而无法编译JSP。这在Tomcat6/7是没有这个问题的。解决办法是:

    打开文件:java/org/apache/catalina/startup/ContextConfig.java,找到webConfig()方法,在下面加上context.addServletContainerInitializer(new JasperInitializer(),null);即可。

     重新启动Tomcat,访问地址,发现访问成功:

  • 相关阅读:
    iOS 应用开发入门指南
    修改Visual Studio2010的主题颜色
    C# 获取操作系统相关信息
    WPF Menu控件自定义Style
    Feedback or feedforward?
    Coprimeness
    Admissible, Stabilizability, and Bicoprime Factorization
    Directions of zeros and poles for transfer matrices
    Limit point, Accumulation point, and Condensation point of a set
    Linear System Theory: zero-input response of LTI system
  • 原文地址:https://www.cnblogs.com/wk-missQ1/p/13138720.html
Copyright © 2020-2023  润新知