繁体   English   中英

java.rmi.ConnectException:连接被拒绝托管

[英]java.rmi.ConnectException: Connection refused to host

经过艰苦的工作,我使用apache作为http服务器来设置Java RMI隧道。 一切都很好,并且在我的办公室LAN上像魅力一样运转。但是当我在客户端安装时,我遇到了一些例外。

当我尝试其他客户的PC时,我得到以下信息。

你们能帮我解决这个问题吗?

 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个新命令提示符,将移动到类所在的文件夹,并使用一个运行服务器,将另一个运行到客户端。

RMI服务器习惯将新端口号传递给客户端,以处理与特定Remote对象的客户端通信。 如果此端口号被防火墙阻止,则会出现类似的异常。 确保使用相同的端口号注册所有远程对象。 然后,RMI将为您多路复用客户端呼叫。

经过我的研究,解决方案是: System.setProperty("java.rmi.server.hostname", IP) ; 在服务器端注册服务之前。 以下是一个示例,希望对您有所帮助!

public static void main(String[] args) throws MalformedURLException, RemoteException, AlreadyBoundException {
        RmiServer server=new RmiServer();
        System.setProperty("java.rmi.server.hostname", 指定IP);
        LocateRegistry.createRegistry(8808);  
        Naming.rebind("//10.10.116.74:8808/SAMPLE-SERVER", server);  
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM