RMI客户端 - 服务器:java.rmi.ConnectIOException:JRMP连接建立期间出错

时间:2014-05-16 13:22:25

标签: java sockets tcp rmi

我正在尝试建立RMI客户端服务器连接,其中客户端和服务器使用TCP Hole打孔机制在不同的NAT /防火墙后面。目前,我可以使用他们的Public Ip和端口“80”获得客户端和服务器之间的连接。建立TCP连接后,我可以检索RMIServer的存根信息。此外,我可以netstat并看到建立的连接。

但是当我尝试读取远程对象时,我遇到异常

java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is: 
java.net.SocketTimeoutException: Read timed out
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:293)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:190)

在监视与netstat的连接时,我可以看到TCP连接立即终止并且不稳定。 如果我能得到关于如何维护或获得稳定的TCP连接的任何提示,那将会很有帮助。

感谢。

1 个答案:

答案 0 :(得分:-1)

超时错误表示您能够在客户端和服务器之间打开套接字,但是套接字未及时得到服务,因此它已关闭并为您提供该异常。

最后一次发生在我身上,发生这种情况是因为客户端无法在其路径中找到正确的类库。服务器试图打开一个套接字,客户端去寻找类库并且没有找到它,套接字最终超时。

仔细检查客户端和服务器的类路径。