2010-03-15 135 views
0

我知道我的RMI應用程序正常工作 - 當服務器在本地主機上,並在局域網內,但連接試圖讓存根失敗時外部RMI服務器時調用連接到位於防火牆後面的RMI服務器?

所以服務器綁定到本地主機正常工作(一個內部IP - 192.168.1.73),但客戶端指定一個外部IP(45.4.234.56) - 然後轉發到內部服務器。你如何解決這個問題?

感謝

+0

我看不到那個結局。你真的不想公開一個RMI服務器。 – 2010-03-15 22:50:43

回答

2

的「最簡單」的方法是爲您的網絡管理員從一個特定端口的防火牆上添加IP轉發到服務器。

假設這不是一個選項(它可能不是),那麼RMI支持通過HTTP進行隧道傳輸。性能很差,但它更適合防火牆。

http://java.sun.com/javase/6/docs/technotes/guides/rmi/faq.html#firewallOut

這種陳腐的方法是受歡迎,因爲 它幾乎不需要設置,並在其中允許你通過代理服務器處理HTTP 防火牆的環境 工作 相當不錯,但不允許定期 出站TCP連接。

如果你的Java RMI不能進行正常的(或 SOCKS)連接到預定 服務器,它注意到一個HTTP 代理服務器配置,它將 試圖隧道的Java RMI通過代理服務器請求 ,一個在 時間。