12

我想远程调试在 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。

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

4

1 回答 1

29

You need to put -Xdebug and -Xrunjdwp... on separate lines in the Java panel of the Tomcat Service Configuration Panel.

So having:

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

will not work, but:

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

will.

于 2013-01-15T13:28:20.887 回答