IDEA导入tomcat源码遇到的问题及解决方案

IDEA导入tomcat源码遇到的问题及解决方案

搞了挺长时间,做一个详细的记录

准备工作

下载Tomcat源码与ant安装文件(网上教程很多,默认下载安装即可,以下简单叙述)
Tomcat下载地址:https://tomcat.apache.org/download-70.cgi
在这里插入图片描述
ant下载地址:https://ant.apache.org/bindownload.cgi
(我下的是这个)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191205094106350.pn

  • ant进行环境变量配置
    解压后的ant文件
    在这里插入图片描述
  • 配置环境变量(三个部分)
    系统变量中新建:ANT_HOME,变量值:解压后的ant路径
    系统变量中新建:classpath,变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
    编辑path系统变量:添加ant解压后的路径
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    配置好之后使用cmd命令查看是否安装完成
    在这里插入图片描述
    此处也可以直接输入ant进行测试是否安装配置成功,会报错,这里忘记截图了,将报错信息直接复制到百度,搜索有很多解决方案。
  • 新建配置文件pom.xml,catalina-home
    在解压的源代码目录下新建文件,如下图
    在这里插入图片描述
    pom文件内容如下:注意:其中Tomcat版本与实际使用的保持一直,此处时Tomcat7.0,如果是8.0就同步修改
<?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>tomcat7</artifactId>
    <name>tomcat7</name>
    <version>7.0</version>
    <build>
        <finalName>tomcat7</finalName>
        <sourceDirectory>java</sourceDirectory>
        <!--<testSourceDirectory>test</testSourceDirectory>  test 下的有些文件报错,因此将test文件夹去掉了-->
        <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>3.5.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.6.5</version>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.4</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.2.2</version>
        </dependency>
        <dependency>
            <groupId>io.codis.jodis</groupId>
            <artifactId>jodis</artifactId>
            <version>0.5.0</version>
        </dependency>
    </dependencies>
</project>  
  • 运行ant命令获取catalina-home的文件夹配置
    在源代码目录下直接运行cmd,然后运行ant命令,会在当前目录下生成** output/build**目录,输入ant命令后回下载一些文件,耐心等待直到下完位置估计三分钟左右。
    在这里插入图片描述
    下载完成
    在这里插入图片描述
    将output/build目录下的所有文件复制到catalina-home文件夹下
    在这里插入图片描述
    在这里插入图片描述
  • 以上准备工作完成,后面就是需要在IDEA中导入源代码

IDEA导入源代码

导入源码

导入项目时注意使用如下方式,否则后面一大堆问题(应该还有其他方式,但是我只会这一种)。
后面一路默认即可。
打开idea使用import project导入源码
** 注意:此处一定使用下图中的界面导入,如果直接打开回显示找不到包,后面遇到给大家再说(可能还有其他办法,我不是专业搞java的还是老老实实来,不然后面一个问题卡好久)**
导入之后默认操作即可
在这里插入图片描述
导入成功开始进行必要的配置

IDEA配置

在这里插入图片描述
在这里插入图片描述
1,名字随意起,此处我用的是MyTomcat
2,Main Class输入:org.apache.catalina.startup.Bootstrap(** 注意:之前说的导入源码必须使用import project,否者这里一直报错,找不到catalina**)
3,输入catalina-home的路劲,例如我的是:E:\xxxxx\tomcat\apache-tomcat-7.0.96-src\catalina-home,直接输入:
-Dcatalina.home=“E:\xxxxx\tomcat\apache-tomcat-7.0.96-src\catalina-home”
4,Use classpath of module和pom文件中设置的Tomcat版本一直,不一致会无法成功创建application, 一般会自动对应pom.xml文件中设置的;选择你解压的源码即可(注意对照你的文件和此处版本相同)
5,选择好jre
在这里插入图片描述

  • 以下三个文件逐个设置
  • 在这里插入图片描述

1,打开java源码,找到Bootstrap文件找到main函数,修改源码添加测试代码确定程序启动了。
在这里插入图片描述

public static void main(String args[]) {
        System.out.println("项目开始启动===============================");

        if (daemon == null) {
            // Don't set daemon until init() has completed
            Bootstrap bootstrap = new Bootstrap();
            try {

2,将test文件夹直接删除(不知到为什么这么做,搜了很多文档都让删掉,那就删掉了),不删除后面一直报错。
在这里插入图片描述
3,设置pom.xml文件,如果不设置汇报错
在这里插入图片描述
点击view->tool windows->Maven project
在这里插入图片描述
先点击刷新,出现以下文件,我们也能看到pom.xml文件图标也变了
在这里插入图片描述
运行之后回下载部分文件,一直等到右上角的红色方框变成灰色,即可
在这里插入图片描述

运行程序

  • 上面配置完成后就可以直接启动项目,在如下路径找到文件,/java/org.apache.catalina.startup.Bootstrap.java,找到main函数,加一句代码
System.out.println("项目开始启动===============================");

方便我们看程序是否启动了。

public static void main(String args[]) {
        System.out.println("项目开始启动===============================");
        synchronized (daemonLock) {
            if (daemon == null) {
                // Don't set daemon until init() has completed
                Bootstrap bootstrap = new Bootstrap();
                try {
                    bootstrap.init();
                } catch (Throwable t) 

第一次运行会包一些告警,在运行的时候会出现好多文件已过时等等一些内容不用管(不报错就行)。
在这里插入图片描述
让后我们将程序直接跑起来,我们看到程序直接启动了。
在这里插入图片描述在这里插入图片描述
然后直接访问,输入:**http://localhost:8080/**网页显示。,出现经典画面。
在这里插入图片描述
对自己设置的测试网页进行加载(这个地方也搞了好久最后发现是路径错了)

*** 注意:测试网页的war包放在catalina-home\webapps这个目录下之前目录放错了怎么都出不来
在这里插入图片描述
在这里插入图片描述
运行测试war包,显示成功
http://localhost:8080/webtexst/
*
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值