2012-05-02 58 views
1

我有在Linux Amazon EC2實例上運行的JBoss 4.0.4.GA。我連接到來自瀏覽器的映射到下載Applet的JSP的URL。 Applet代碼爲會話Bean執行JNDI查找。我是我的瀏覽器的Java控制檯上看到的錯誤是:從Applet到EC2實例上的JBoss的JNDI查找

Connection refused to host: 10.xxx.xxx.xxx 
nested exception is: 
    java.net.ConnectException: Connection timed out: connect 

即我的小程序試圖連接到私人 IP的情況下,這是註定要失敗的,當然的。

的〔刪節]代碼,不會JNDI查找是:

System.setProperty(InitialContext.PROVIDER_URL, "jnp://<public ip of EC2 instance>:1099"); 
InitialContext ic = new InitialContext(null); 
Object o = ic.lookup("ejb/....MySessionBean"); 

當打開在Java控制檯跟蹤上,我可以看到,一個請求被端口1098由在內部IP:

network: Connecting http://<public ip>:1099/ with proxy=DIRECT 
network: Connecting http://<private ip>:1098/ with proxy=DIRECT 

有人能告訴我如何獲得1098通信發生在外部IP?

回答

1

爲JBoss啓動添加-Djava.rmi.server.hostname = public-IP解決了此問題。