我想从Eclipse的远程主机上启动Tomcat调试会话,但是它失败了,出现了以下错误:
Failed to connect to remote VM
com.sun.jdi.connect.spi.ClosedConnectionException我认为,我的Tomcat正确地配置为在端口8000上接收调试会话:
tomcat 18771 1 1 17:18 ? 00:00:16 /usr/lib/jvm/java/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Djava.rmi.server.hostname=10.30.0.17 -Dcatalina.ext.dirs=/usr/share/tomcat5/shared/lib:/usr/share/tomcat5/common/lib -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -Djava.endorsed.dirs=/usr/share/tomcat5/common/endorsed -classpath /usr/lib/jvm/java/lib/tools.jar:/usr/share/tomcat5/bin/bootstrap.jar:/usr/share/tomcat5/bin/commons-logging-api.jar:/usr/share/java/mx4j/mx4j-impl.jar:/usr/share/java/mx4j/mx4j-jmx.jar -Dcatalina.base=/usr/share/tomcat5 -Dcatalina.home=/usr/share/tomcat5 -Djava.io.tmpdir=/usr/share/tomcat5/temp org.apache.catalina.startup.Bootstrap start我的PC和远程服务器之间有防火墙,但是端口打开得很好,因为我可以在服务器上看到这些带有tcpdump的数据包:
17:41:17.110977 IP X.X.X.X.57010 > Y.Y.Y.Y.irdmi: S 868833744:868833744(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK>
17:41:17.111183 IP Y.Y.Y.Y.irdmi > X.X.X.X.57010: S 3571247457:3571247457(0) ack 868833745 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>
17:41:17.112624 IP X.X.X.X.57010 > Y.Y.Y.Y.irdmi: . ack 1 win 256
17:41:19.113216 IP Y.Y.Y.Y.irdmi > X.X.X.X.57010: F 1:1(0) ack 1 win 46
17:41:19.114246 IP X.X.X.X.57010 > Y.Y.Y.Y.irdmi: P 1:15(14) ack 1 win 256
17:41:19.114279 IP Y.Y.Y.Y.irdmi > X.X.X.X.57010: R 3571247458:3571247458(0) win 0Tomcat日志中唯一的消息写入是Debugger未能附加:握手期间超时。
我不知道在网上找到的信息是怎么回事。
有人能帮我吗?
我的服务器: RHEL 5.9,Tomcat 5.5,java 1.6
你好,罗伯特
发布于 2013-08-08 13:49:03
我解决了我的问题:在我的电脑和服务器之间的防火墙上激活了一个数据包检查。它允许特定的TCP数据包通过,因此TCP手柄可以产生,但阻塞数据TCP数据包。
据我所知,首先建立TCP连接,然后由java服务器与TCP数据包进行应用程序握手。由于数据包被防火墙过滤,应用程序握手无法完成,应用程序通过发送FIN数据包关闭TCP连接。
你好,罗伯特
https://stackoverflow.com/questions/17862772
复制相似问题