2016-04-04 14 views
0

この質問は以前に尋ねられていますが、これまでに見つかった回答は役に立ちませんでした。私はラインRMI:ホストへの接続が拒否されました -/etc/hostsを編集してsetProperty()が動作しない

127.0.0.1 java.rmi.server.hostname 

次を追加することによって、私の/ etc/hostsファイルを編集してみました、私は(も私の「外部」IPアドレスで試してみました)私のコードに

System.setProperty("java.rmi.server.hostname","127.0.0.1"); 

を追加してみました。しかし、私はこのエラーを取得しておいてください。ここでは

java.rmi.ConnectException: Connection refused to host: 192.168.178.22; nested exception is: 
    java.net.ConnectException: Connection refused 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619) 
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216) 
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202) 
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342) 
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) 
    at java.rmi.Naming.rebind(Naming.java:177) 

は私のサーバーのコードは次のとおりです。

public class CounterServer { 
    public static void main(String args[]) { 
     try { 
      System.setProperty("java.rmi.server.hostname","192.168.178.22"); 

      LocateRegistry.createRegistry(4711); 

      ICounter counter = new Counter(); 
      Naming.rebind("Counter", counter); 
     } catch (RemoteException e) { 
      e.printStackTrace(); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

私は、これは固定得ることができる方法任意のアイデア?私はMac OSX上で動作しています!

答えて

0

ホーリー・モリー、だから愚かなこと:-)問題はsetProperty()や/ etc/hostsとは関係ありませんでした。コードからRMIレジストリを起動するときは、レジストリではなくネーミングでrebindを呼び出すようにしてください。ここに正しいコードがあり、すべてが魅力のように走ります!

public class CounterServer { 
    public static void main(String args[]) { 
     try {  
      Registry r = LocateRegistry.createRegistry(4711); 

      ICounter counter = new Counter(); 
      r.rebind("Counter", counter); 
     } catch (RemoteException e) { 
      e.printStackTrace(); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+1

少なくとも、レジストリの作成時に行ったのと同じポートを 'Naming.rebind()'で使用してください。 'Registry'変数を静的にして、すべてがガベージコレクションされないようにする必要があります。 – EJP

関連する問題