MacBook搭建Tomcat8源码阅读环境 Idea+Maven

2 篇文章 0 订阅
1 篇文章 0 订阅

MacBook搭建Tomcat8源码阅读环境

准备工作

下载源码
https://tomcat.apache.org/download-80.cgi#8.0.53

源码目录配置

1、新建catalina-home目录,把xxx-src目录里的conf等目录复制到当前目录,没有的目录自己新建空目录。在这里插入图片描述
2、新建pom.xml并配置

<?xml version="1.0" encoding="UTF-8"?>

<modelVersion>4.0.0</modelVersion>    
<groupId>org.apache.tomcat</groupId>    
<artifactId>Tomcat8.0</artifactId>    
<name>Tomcat8.0</name>    
<version>8.0</version>    

<build>    
    <finalName>Tomcat8.0</finalName>    
    <sourceDirectory>java</sourceDirectory>    
    <testSourceDirectory>test</testSourceDirectory>    
    <resources>    
        <resource>    
            <directory>java</directory>    
        </resource>    
    </resources>    
    <testResources>    
        <testResource>    
            <directory>test</directory>    
        </testResource>    
    </testResources>    
    <plugins>    
        <plugin>    
            <groupId>org.apache.maven.plugins</groupId>    
            <artifactId>maven-compiler-plugin</artifactId>    
            <version>2.0.2</version>    

            <configuration>    
                <encoding>UTF-8</encoding>    
                <source>1.8</source>    
                <target>1.8</target>    
            </configuration>    
        </plugin>    
    </plugins>    
</build>    

<dependencies>  
    <dependency>  
        <groupId>org.easymock</groupId>  
        <artifactId>easymock</artifactId>  
        <version>3.5</version>  
        <scope>test</scope>  
    </dependency>  

    <dependency>    
        <groupId>junit</groupId>    
        <artifactId>junit</artifactId>    
        <version>4.12</version>  
        <scope>test</scope>    
    </dependency>    
    <dependency>    
        <groupId>ant</groupId>    
        <artifactId>ant</artifactId>    
        <version>1.7.0</version>    
    </dependency>    
    <dependency>    
        <groupId>wsdl4j</groupId>    
        <artifactId>wsdl4j</artifactId>    
        <version>1.6.2</version>    
    </dependency>    
    <dependency>    
        <groupId>javax.xml</groupId>    
        <artifactId>jaxrpc</artifactId>    
        <version>1.1</version>    
    </dependency>    
    <dependency>    
        <groupId>org.eclipse.jdt.core.compiler</groupId>    
        <artifactId>ecj</artifactId>    
        <version>4.6.1</version>  
    </dependency>    
</dependencies>    

导入idea

File->Open->pom.xml
等待maven下载完成依赖jar包后,源码目录就可以正常显示了。

配置并运行

1、idea中打开apache-tomcat-8.0.53-src目录,定位到java目录,右键
Mark Directory as->Sources Root

2、配置启动入口类等信息
Main class设置为

org.apache.catalina.startup.Bootstrap

添加VM options

-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

配置效果:
在这里插入图片描述

点击运行按钮:这里可以看到已经启动成功
在这里插入图片描述

但是访问localhost:8080报错:
在这里插入图片描述

原因是直接启动org.apache.catalina.startup.Bootstrap的时候没有加载org.apache.jasper.servlet.JasperInitializer,从而无法编译JSP。解决办法是在tomcat的源码org.apache.catalina.startup.ContextConfig中手动将JSP解析器初始化:

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

如下:
在这里插入图片描述

重启之后即可正常访问!
在这里插入图片描述
参考资料:
IDEA运行Tomcat8源码
https://blog.csdn.net/yekong1225/article/details/81000446

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值