java远程调试Tomcat app:为什么JVM不能监听?

时间:2013-01-15 13:11:40

标签: java tomcat7 remote-debugging

我想远程调试在Tomcat 7中运行的应用程序.Tomcat作为Win2008服务器上的服务运行。 我将以下内容添加到Tomcat的Java配置面板中的Java选项: -Xdebug -Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n并在我的工作站和此端口的服务器上打开防火墙。 但是当我在工作站上尝试从IntelliJ 9进行调试时,收到错误消息Unable to open debugger port : java.net.ConnectException "Connection timed out: connect"。 jvm是标准的Sun / Oracle 64位JVM版本1.6.0_27。

我通过访问部署到Tomcat的应用程序中的ManagementFactory.getRuntimeMXBean().getInputArguments()并将结果记录到日志文件来验证命令行参数正在使用中。 我通过Wireshark在我的工作站和服务器上验证了端口4711上的TCP请求是从我的电脑发送到服务器的,但是没有答案。在服务器上运行netstat -a不会显示正在侦听此端口的进程。所以我假设Tomcat / JVM不能启动远程调试。

1 个答案:

答案 0 :(得分:28)

您需要在Tomcat服务配置面板的Java面板中的单独的行上放置-Xdebug和-Xrunjdwp ....

所以:

-Xdebug -Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n

不起作用,但是:

-Xdebug
-Xrunjdwp:transport=dt_socket,address=4711,server=y,suspend=n

意愿。