如果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>