日期:2014-05-16  浏览次数:20636 次

linux环境下的rmi常见问题

问题一:RMI服务提供程序运行在Windows操作系统下,RMI服务可以正常访问,但将RMI服务提供程序部署到Linux操作系统下后,RMI服务无法访问,提示

org.springframework.remoting.RemoteConnectFailureException:

Cannot connect to remote service [rmi://192.168.0.106:1199/ItemRetag]; nested exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; ……???
?解决办法:在加载RMI服务之前将当前服务器的IP指定给hostName,如 System.setProperty("java.rmi.server.hostname", "192.168.100.7");或者修改/etc/hosts文件,在这个文件中加 192.168.100.54? testlinux1 localhost.localdomain localhost 就行,或者将/etc/hosts文件中默认的127.0.0.1改成当前机器的IP即可!

问题二:java.rmi.server.ExportException: internal error: ObjID already in use Caused by: java.rmi.server.ExportException: internal error: ObjID already in use……

出现这种问题及有可能是/etc/hosts文件中指定的IP并不是当前服务器的真实IP,RMI在初始化时注册服务失败。

通过System.out.println(InetAddress.getLocalHost().toString());查看当前主机的IP是否为真实IP,如显示为SIMBANK/220.250.64.24,而真实IP为192.168.1.2?????????

解决办法:修改/etc/hosts文件中错误的IP即可,将:

220.250.64.24????????? SIMBANK
修改为

192.168.1.2????????? SIMBANK