Tomcat 启动 Debug模式

时间:2024-01-16 21:18:14

如果debug启动遇到如下错误:

ERROR: transport error 202: gethostbyname: unknown host
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

则应该检查本地的hosts文件, 看127.0.0.1是不是被注掉了.

在%CATALINA_HOME%\bin\startup.bat中添加以下任意一行配置: 
SET JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787

启动tomcat后,在控制台显示以下内容表示配置成功: 
Listening for transport dt_socket at address: 8787

在Spring Boot结合Maven的项目中, 如果要对embedded tomcat进行debug, 则需要在POM文件中加入以下内容

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <!-- enable remote debug for embed jvm, the following configuration suspend the process until a debugger has joined on port 8787 -->
          <jvmArguments>
            -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787
    </jvmArguments>
        </configuration>
      </plugin>
  </plugins>
</build>