ファイアウォールの内側のアプレットクライアントでRMIを使用する方法
質問
ファイアウォールの背後にあるアプレットクライアントでRMIを使用するにはどうすればよいですか
ファイアウォール付きサーバーおよびファイアウォール付きアプレットクライアントでRMIを使用するにはどうすればよいですか? (可能な場合)
RMIサーバーがポート1099を使用することを知っています(デフォルトでは、これは構成可能です)。ただし、この後、通信には別のランダムポートに新しいソケットが必要です。また、RMI over HTTPトンネリング用にクライアントにプロキシを設定できることも知っています。理論的には、この問題を解決するはずです。しかし、それを機能させることはできません(XPクライアントで環境プロパティを設定しようとしましたが、Internet Explorerはそれらを無視し続けます)。
他のヒント
サーバーコードが手元にある場合は、ここで説明するようにカスタムRMISocketFactoryを提供することにより、RMIが事前定義されたポートを使用するように制限することもできます。 http://insidecoffe.blogspot.com/2012/02/firewall-friently-rmi-port-fixing.html
(JMXを並行して使用すると問題を引き起こす可能性があるというヒントに特に注意してください)
まだ自分を深く見ていませんが、現在行っているプロジェクトを探していると、 LipeRMI 。
インターネットの使用を対象とし、<!> quot;ローカルネットワーク、ルーター、またはファイアウォールの背後にあるようにクライアントをシャドウする; <!> quot;
編集:
RMI Doves 1.0:Java RMIファイアウォール問題の解決策と呼ばれる別の実装を思い出しましたあなたもそれを見たいかもしれません。
サーバーに次のようなコードを入力します:
RmiInterface stub = (RmiInterface) UnicastRemoteObject.exportObject(rmi, 35400);
LocateRegistry.createRegistry(1099);
Naming.rebind("//192.168.102.128:1099/rmi", stub);