Tomcat - 源码构建Tomcat 8.5.55 启动

在这里插入图片描述


官方地址

https://tomcat.apache.org/download-80.cgi

在这里插入图片描述
历史版本:

https://archive.apache.org/dist/tomcat/tomcat-8/

这里最新的是 8.5.55 ,我们就用这个吧

在这里插入图片描述

得到 apache-tomcat-8.5.55-src.zip


源码搭建分析

我们在使用tomcat时,俩目录 conf 和 webapps 是不是经常需要修改?

在这里插入图片描述

一个负责tomcat的配置文件信息,一个负责应用 。 很显然,我们使用源码构建tomcat环境的时候,也要告诉tomcat这两个目录的位置,以便加载配置文件和应用。

不管形式怎么变, 使用tomcat编译好的二进制还是源码部署编译,tomcat该加载的配置文件都是一样的。

因此 ,使用源码编译需要做出点改变, 比如下面搭建步骤中新建source文件夹目录,存放conf和webapps(实际上,这个目录名字爱叫啥,爱放哪 放哪, 我们只要通过VM options 告诉tomcat就好了,为了方便管理,所以在源码的一级目录下建个目录source


源码搭建步骤 (Maven管理)

Step1. 新增maven管理文件 pom.xml

解压apache-tomcat-8.5.55-src.zip 后 ,比如我这里放到了D盘 , 在 D:\apache-tomcat-8.5.55-src 下 新建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-8.5.50-src</artifactId>
    <name>Tomcat8.5</name>
    <version>8.5</version>
 
    <build>
      	<!--指定源目录-->
        <finalName>Tomcat8.5</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.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!--Tomcat是java开发的,封装了很多功能,它需要依赖一些基础的jar包-->
    <dependencies>
        <!--远程过程调用工具包-->
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc</artifactId>
            <version>1.1</version>
        </dependency>
        <!--soap协议处理工具包-->
        <dependency>
            <groupId>javax.xml.soap</groupId>
            <artifactId>javax.xml.soap-api</artifactId>
            <version>1.4.0</version>
        </dependency>
        <!--解析webservice的wsdl文件工具-->
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <!--Eclipse Java编译器-->
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.5.1</version>
        </dependency>
        <!--ant管理工具-->
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.7.0</version>
        </dependency>
        <!---easymock辅助单元测试-->
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.4</version>
        </dependency>
    </dependencies>
</project>

Step2. 处理conf 和 webapps

在 D:\apache-tomcat-8.5.55-src 下新建个source目录 ,原因如上分析

在apache-tomcat-8.5.55-src下创建source文件夹 ,将conf、webapps目录移动到 source文件夹中

在这里插入图片描述

这里多了其他的,是因为我刚才已经启动tomcat了…


Step3. 导入IEDA

3.1 配置Main Class

新增Application , 选择Main class , 配置VM 参数
在这里插入图片描述

在这里插入图片描述

3.2 配置VM 参数

VM参数 ,告诉tomcat 家目录一级 log日志文件目录。 【tomcat源码运行需要加载配置文件】

-Dcatalina.home=D:\apache-tomcat-8.5.55-src\source
-Dcatalina.base=D:\apache-tomcat-8.5.55-src\source
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=D:\apache-tomcat-8.5.55-src\source\conf\logging.properties

完整的信息如下:

在这里插入图片描述


Step4. 启动tomcat

在这里插入图片描述

访问 http://locahost:8080/

在这里插入图片描述

原因: Jsp引擎Jasper没有被初始化,从而无法编译处理Jsp,Jsp是需要被转换成servlet进一步编译处理的,只需要在tomcat的源码ContextConfig类中的configureStart方法中增加一行代码将Jsp引擎初始化

  // 初始化Jasper  (JSP解析引擎)
  context.addServletContainerInitializer(new JasperInitializer(),null);

在这里插入图片描述

重启再次访问 http://locahost:8080/

在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值