JBOSS实现RMI时注意的问题

使用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

相关文章
相关标签/搜索