调试Apache Tomcat

时间:2016-02-25 07:01:20

标签: java tomcat

我一直在尝试通过定义setenv.sh来调试Apache Tomcat。这些是文件的内容。

export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y"

我使用IntelliJ IDEA作为IDE。

当我将setenv.sh文件放在bin文件夹中时,每次成功连接到端口8000但我发现在某些尝试中,调试点得到满足,但有时却没有。当我停止调试器时,服务器永远不会启动。我正在使用sh bin/catalina.sh jpda start命令。日志在这种尝试中也不起作用。

但sh bin / catalina.sh在每次尝试时都能正常工作。

这种奇怪行为的原因是什么?

1 个答案:

答案 0 :(得分:0)

  

在某些尝试中,调试点得到满足,但有时候他们不会

我相信你的意思是break points。检查您是否使用与编译的tomcat相同的源版本。版本之间存在不匹配是正常的(并且是预期的)。另外,请确保您不会意外地重新格式化来源。

  

当我停止调试器时,服务器永远不会启动

应用程序无法启动,因为您有suspend=y标志,这意味着"等待调试器附加"。将其更改为suspend=n,应用程序将在没有调试器的情况下启动。

PS:当您想要调试时 - 使用catalina.sh jpda start启动服务器。如果没有 jpda 参数,JVM将无法在调试模式下启动