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

我想远程调试在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()并将结果记录到日志文件来validation命令行参数正在使用中。 我通过Wireshark在我的工作站和服务器上validation了端口4711上的TCP请求是从我的电脑发送到服务器的,但是没有答案。 在服务器上运行netstat -a不会显示侦听此端口的进程。 所以我假设Tomcat / JVM不会启动远程调试。

您需要将-Xdebug和-Xrunjdwp …放在Tomcat服务配置面板的Java面板中的不同行上。

所以:

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

不会起作用,但是:

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

将。