Post

IDEA源码调试Tomcat环境配置

源码下载

源码解压后的文件目录

3

发布版本解压后的文件目录

4

下载相同版本的 tomcat,里面有需要的lib

部署步骤

  1. IDEA 专业版(2021.3)构建 Maven 项目

    1

    2

  2. 复制代码

    • 源码中的 confwebappas 目录复制到新建项目根路径下,javamodules 目录复制到新建目录根路径下的 \src\main 目录;
    • 发布版本中的 lib 目录复制到新建项目根路径下。

    最终新建项目复制代码后的目录结构是:

    5

  3. 编辑新建项目根目录下的 pom.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
    <?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>com.apache</groupId>
        <artifactId>tomcatcode</artifactId>
        <version>1.0-SNAPSHOT</version>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3</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.4</version>
            </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.5.1</version>
            </dependency>
        </dependencies>
       
    </project>
    
  4. IDEA 中对新建项目引入模块

    打开 “文件-项目结构-项目设置-模块-项目名-依赖-添加-JAR或目录-全选该项目 lib 目录下的所有 jar 文件” ,导入成功后如下所示:

    6

  5. IDEA 中对新建项目配置启动程序

    打开 “运行/调试设置-选择应用程序”,添加主类为:org.apache.catalina.startup.Bootstrap,添加VM选项为:-Dcatalina.home="<新建项目根目录的绝对路径>",最终结果是:

    7

  6. 启动 Tomcat

    默认访问地址: http://localhost:8080

    8

调试

新建 JSP 文件

在根目录下的 webapps/ROOT 中新建 dd.jsp 文件,访问地址为: http://localhost:8080/dd.jsp

新建网站目录

在项目根目录下的 webapps 中新建文件夹,创建如下图所示

9

访问地址为: http://localhost:8080/html-project/index.html

或者给这个单独网站做配置,WEB-INF/classes/MyServlet.class 文件是 /src/main/java/MyServlet.java 中创建并构建后从 /target/classes/MyServlet.class 复制而来,MyServlet.java 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
// /src/main/java/MyServlet.java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("Hello World");
    }
}

之后在 WEB-INF/web.xml 中做映射,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <servlet>
        <servlet-name>zhangsan</servlet-name>
        <servlet-class>MyServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>zhangsan</servlet-name>
        <url-pattern>*.abc</url-pattern>
    </servlet-mapping>

</web-app>

最终访问地址为:http://localhost:8081/html-project/gg.abc

其他

  1. 更改监听端口

    更改项目根目录下的 conf/server.xml 文件,修改端口为 8081

    1
    2
    3
    
    <Connector port="8081" protocol="HTTP/1.1" 
    	connectionTimeout="20000"
    	redirectPort="8443" />
    

    之后在 IDEA 中重新运行即可。

  2. 查看web访问日志

    访问日志存放在项目根目录 logs 目录下

Ref.

  • https://zhuanlan.zhihu.com/p/35454131
  • https://blog.csdn.net/github_26672553/article/details/78986725
This post is licensed under CC BY 4.0 by the author.