经过一番努力,我已经使用 apache 作为 http 设置了 Java RMI 隧道 服务器。一切都很好,并且在我的办公室 LAN 上工作得非常顺利。但是当我在客户的地方安装时,我遇到了一些异常。RMI 系统只能在他的服务器上工作。
当我从其他客户的电脑上尝试时,我得到以下信息。
你们能帮我解决这个问题吗?
java.rmi.ConnectException: Connection refused to host: 172.xx.x.xxx;
nested exception is: java.net.ConnectException: Connection timed
out: connect at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown
Source) at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown
Source) at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown
Source) at sun.rmi.server.UnicastRef.invoke(Unknown Source) at
java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown
Source) at
java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
at $Proxy1.getUserID(Unknown Source) at
rmi.source.ServerImpl$JobScheduler.run(ServerImpl.java:265) at
java.util.TimerThread.mainLoop(Unknown Source) at
java.util.TimerThread.run(Unknown Source) Caused by:
java.net.ConnectException: Connection timed out: connect at
java.net.PlainSocketImpl.socketConnect(Native Method) at
java.net.PlainSocketImpl.doConnect(Unknown Source) at
java.net.PlainSocketImpl.connectToAddress(Unknown Source) at
java.net.PlainSocketImpl.connect(Unknown Source) at
java.net.SocksSocketImpl.connect(Unknown Source) at
java.net.Socket.connect(Unknown Source) at
java.net.Socket.connect(Unknown Source) at
java.net.Socket.<init>(Unknown Source) at
java.net.Socket.<init>(Unknown Source) at
sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown
Source) at
sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown
Source) ... 10 more
最佳答案
我正在运行来自roseindia rmi的文件
rmicregistry 存在错误,必须使用 rmiregistry
:
我将 ip 更改为 localhost,如何在特殊端口号上运行我现在不知道 必须使用 rmiregistry 不是 rmicregistry
所以:
移动到您的类文件所在的文件夹。
类型:rmiregistry
然后打开 2 个新的命令提示符,移动到类所在的同一文件夹,并使用一个运行服务器,另一个运行客户端。
关于java.rmi.ConnectException : Connection refused to host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5576481/