RMIクライアントがサーバーに接続できない、サーバー仮想マシンの表示IPアドレスは、アクセスを拒否しました

 

 

    彼らはどこから来た問題が発生したフィドルのRMIで今日は、クライアントは常に、非常に奇妙であるアクセスを拒否された不可解なIPアドレスを表示しますか?サーバのIPアドレスのIPを見て、クライアントが自動的に仮想マシンにマッピングされます、なぜその後、調査が見つかった後、IPアドレス、IPアドレスは、仮想ネットワークアダプタの仮想マシンであることを、知りません。解決策は、最初の仮想ネットワークアダプタから外れているし、サーバーのRMIが正しく接続されます再起動します。(詩:仮想カードが開かれた再起動した後、それはそれぞれの相Aには影響を与えません)。

    個人的な推測では、サーバーの登録サービスは、IPアドレスを自動的に選択されますと、IPアドレスエラーが選択肢に発生していることです。私は、Javaのソースコードのこの部分を見つけることができませんでした。弟を助けることができる以下のソースは、それに答えています。

サーバー:

輸入java.rmi.Naming;
輸入java.rmi.RemoteExceptionの。
輸入java.rmi.registry.LocateRegistry。
輸入java.rmi.registry.Registry。

パブリック クラスこのRegistryService {
     公共 静的 ボイドメイン(文字列[]引数){
             試みる{ 
                レジストリレジストリ = LocateRegistry.createRegistry(8848の
                こんにちはHellowRegistryFacade = 新しいHellowRegistryFacadeImpl(); 
                registry.rebind( "HellowRgistry" こんにちは); 
                System.out.println( "==启动RMI服务成功!"); 
            } キャッチ(RemoteExceptionを電子){ 
                e.printStackTrace(); 
            } 
    } 
}

クライアント:

インポートとしてjava.rmi.NotBoundException;
輸入java.rmi.RemoteExceptionの。
輸入java.rmi.registry.LocateRegistry。
輸入java.rmi.registry.Registry。

パブリック クラスRegistryClient {
     公共 静的 ボイドメイン(文字列[]引数){ 
        レジストリレジストリ = NULL ;
        試す{ 
            レジストリ =のLocateRegistry.getRegistry( "192.168.1.3"を、8848 ); 
            ハローHellowRegistryFacade =(HellowRegistryFacade)registry.lookup( "HellowRgistry" )。
            文字列の応答 = hello.helloWorld( "朋友"); 
            System.out.println(応答)。
        } キャッチ(RemoteExceptionを電子){ 
            e.printStackTrace(); 
        } キャッチ(持つNotBoundException電子){ 
            e.printStackTrace(); 
        } 
    } 
}

 インターフェース

輸入はjava.rmi.Remote;
輸入java.rmi.RemoteExceptionの。

パブリック インターフェース HellowRegistryFacadeは延びリモート{ 
    文字列のhelloWorld(文字列名)がスローRemoteExceptionを。
}

インターフェース

輸入java.rmi.RemoteExceptionの。
輸入java.rmi.server.UnicastRemoteObject。

パブリック クラス HellowRegistryFacadeImplが延び UnicastRemoteObjectをが実装HellowRegistryFacadeを{ 

    プライベート 静的 最終 長いのserialVersionUID = 1L 

    保護 HellowRegistryFacadeImpl()がスローRemoteExceptionを{ 
    } 

    @Override 
    パブリック文字列のhelloWorld(文字列名)がスローRemoteExceptionを{
         戻り "[レジストリ]你好!" + 名。
    } 
}

 

おすすめ

転載: www.cnblogs.com/yanyange/p/11374183.html