我想远程调试在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不能启动远程调试。
答案 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
意愿。