0
我是RMI技術的新手,面臨以下問題。如何綁定多個RMI服務器的單個對象
我們有多臺相同類型的設備連接到本地系統,其中每臺設備上的RMI服務都在不同的端口上運行。
當我們試圖通過RMI將單個設備連接到本地系統時,它的工作正常。 當我們嘗試將第二臺設備連接到本地系統時,我們得到以下錯誤 -
請您幫助我們解決以下問題嗎?
在此先感謝。
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at com.rmi.server.RMIServer.exportAndBindObject(Unknown Source)
Demo.java
this.myRMIServer = new RMIServer(this.RMIServerPort,this.RMIClientPort, new RMISocketFactory());
this.helloWorld = new HelloWorld();
this.myRMIServer.exportObject(this.helloWorld);
this.myRMIServer.exportAndBindObject(this.rmiServiceName, this.helloWorld);
RMIServer.java
public RMIServer(int port, int rmiPort, java.rmi.server.RMISocketFactory sf)
throws RemoteException {
this.sf = sf;
this.rmiPort = rmiPort;
this.regPort = port;
synchronized (this) {
if (registry == null)
registry = LocateRegistry.createRegistry(port);
}
}
public void exportAndBindObject(String name, RemoteObject ro)
throws RemoteException, MalformedURLException {
exportObject(ro);
String url = "//127.0.0.1:" + this.regPort + "/" + name;
Naming.rebind(url, ro);
}
我看不出您的標題和您的問題之間的任何關係,我無法相信這個代碼在任何系統上都可以工作,除非端口相同:請參閱我的答案。 – EJP