使用JBOSS部署EJB服務後經過RMI訪問報錯:
javax.naming.CommunicationException: Could not obtain connection to any of these urls: xx.xx.xx.xx:1199 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
原有時由於JBOSS默認使用本地調用,沒法跨服務器訪問,須要在啓動時添加參數run -b 0.0.0.0或run -b xx.xx.xx.xx(服務器IP)java
當使用run -b 0.0.0.0的方式啓動後,跨服務器遠程訪問時出現以下錯誤:
[Root exception is java.rmi.UnknownHostException: Unknown host: l48202b; nested exception is: java.net.UnknownHostException: l48202b]
l48202b爲服務器機器名。出現該錯誤須要添加啓動參數
-Djava.rmi.server.hostname=serverIP(服務器IP) -Dremoting.bind_by_host=false
服務器
綜上所述通常可採用兩種方式配置JBOSS遠程服務:url
1.JBosss服務器啓動時,不要指定了-b 0.0.0.0,作以下修改spa
run.bat -b serverIP(服務器IP)
這個方法能夠,可是有點不方便,jboss內部沒法經過local調用ejb了.net
2.修改JBoss啓動參數爲
run -b 0.0.0.0 -Djava.rmi.server.hostname=serverIP(服務器IP) -Dremoting.bind_by_host=falseserver
注意:第一中方式,會是JBoss沒法經過local調用ejb,因此若是不存在本地調用能夠使用這種方式,不然使用第二中方式。 rem