• 编译并运行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 

  • 相关阅读:
    零知识证明 SNARKs 第2部分:多项式盲估
    零知识证明 SNARKs 第3部分:知识系数测试和假设
    零知识证明 SNARKs 第4部分:如何进行可验证多项式盲估
    网站渗透测试原理及详细过程
    网站渗透测试原理及详细过程
    网站渗透测试原理及详细过程
    网站渗透测试原理及详细过程
    Java网络编程从入门到精通(27):关闭服务端连接
    Java网络编程从入门到精通(27):关闭服务端连接
    Java网络编程从入门到精通(27):关闭服务端连接
  • 原文地址:https://www.cnblogs.com/-beyond/p/14256711.html
Copyright © 2020-2023  润新知