编译并运行Apache Tomcat8.5源码

原文地址: https://www.cnblogs.com/-beyond/p/14256711.html

下载Tomcat

  下载地址:https://tomcat.apache.org/download-80.cgi

  在最下面的Source Code Distributions下面,下载tar.gz或者zip包,然后解压

  

 

文件的选取

  保留conf、java、webapps目录,其余文件可以删除

  整理后,项目结构如下图所示(pom文件时我自己添加的):

  

 

 

添加为maven项目

  上面导入的项目,并不是maven项目,所以创建一个pom.xml,加入以下内容(建议直接复制粘贴)

<?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>apache-tomcat</artifactId>
    <version>8.5</version>

    <dependencies>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.10.4</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc-api</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.5.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>apache-tomcat</finalName>
        <sourceDirectory>java</sourceDirectory>
        <resources>
            <resource>
                <directory>java</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

  添加pom.xml文件后,选中pom.xml,然后将其添加为maven项目,如下图所示:

  

 

 

进行编译项目

  直接使用IDEA右边栏的maven compile

  

 

 

Tomcat启动类

  项目已经导入为maven项目了,但是项目此时还不能运行,因为java代码的执行入口是main方法,所以需要先找到main方法

  而Tomcat的启动入口则是在java目录下的org.apache.catalina.startup.Bootstrap类:

  

  上面虽然找到了入口main方法,但是尝试启动main方法时,是不能正常启动tomcat,需要设置一些执行参数(配置)

 

设置Tomcat配置信息

  执行的时候,需要设置一下几项:

-Dcatalina.home=/Users/ganlixin/code/java-code-all/apache-tomcat
-Dcatalina.base=/Users/ganlixin/code/java-code-all/apache-tomcat
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=/Users/ganlixin/code/java-code-all/apache-tomcat/conf/logging.properties

  配置的catalina.home和catalina.base都是项目的根目录

  后面两个配置则是对日志进行配置(使用的log manager,以及日志的配置文件)

 

添加启动配置

  创建一个配置配置,如下图所示,也就是将上面的启动类和启动参数设置一下

  

 

启动项目

  上面的启动项加好后,直接点击运行即可:

  

  上面有乱码,这是因为编码的问题,可以参考:https://www.cnblogs.com/-beyond/p/14258736.html

  上面运行后的日志可以看出,tomcat已经成功启动了,监听8080端口。

 

访问Tomcat

  使用浏览器访问localhost:8080,会看到一个异常栈

   

  上面这个报错是因为JSP解析器没有初始化。

 

添加JasperInitializer

  上面的报错解决方式,可以在org.apache.catalina.startup.ContextConfig类中的configureStart方法中,添加一下JSP解析器初始化即可

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

  上面这行代码加载webconfig()后面即可。

  

 

 

保存后重新编译启动项目

  上面那行代码加好后保存,然后重新编译项目,启动项目后,重新访问localhost:8080,即可正常访问tomcat,如下页面所示:

  

 

原文地址: https://www.cnblogs.com/-beyond/p/14256711.html 

 

posted @ 2021-01-09 23:01  寻觅beyond  阅读(736)  评论(2编辑  收藏  举报
返回顶部