同じマシンで正常に動作する非常に単純なRMIサーバー/クライアントがあります。私は今、あるマシン上でサーバを実行しようとしており、別のマシン上のクライアントは両方とも同じネットワークにあります。私が使用してIPアドレスをネットワークにプロパティを設定している:両方のマシンでRMIリモート接続に失敗しました
System.getProperty("java.rmi.server.hostname", "192.168.x.x");
&無効にファイアウォールが、接続がまだ失敗します。
クライアントコードは(サーバは8888でcreateRegistryを使用しています)サーバーに接続するためにこれを使用しています。
Registry registry = LocateRegistry.getRegistry("192.168.x.x",8888);
ITest stub = (ITest) registry.lookup("ITest");
捕まるexecptionは、例えば192.168.xxの対与えられたものと同じではないIPを示しているようだが169.254.xxの:
Client exception: java.rmi.ConnectionException: Connection refused to host: 169.254.x.x; nested exception is ...
複数の物理または仮想ネットワークインターフェイスがインストールされていますか? – Marged
@Margedネットワークアダプターを意味しますか?ええ、4つのうち2つは仮想です –
'System.getProperty'はプロパティを設定せず、戻り値を破棄しても何も役に立たない。サーバーを起動した後、プラットフォームによってnetstat -pまたはlsofなどを使用して、リッスンしているアドレスとポートを正確に確認します。 –