前几天对一个业务系统做了一下RMI的集成, 一切都挺顺利, 本地测试通过, 但是今天该业务系统部署到服务器上却出现了连接不上的情况。 Connection refuse !!!
认真一看, 发给A服务器的调用却最后发给了B服务器。 Debug了好久就是lookup()的方法直接返回了B服务器地址, 当时就一直考虑A服务器是不是有内部转发给B, Linux 下tcpdump tcp port 1099(RMI端口) 看了, Windows 下pathping ip也看了, 就是没看到跳转到B服务器的请求。
找了好几个小时, 在ps -ef|grep tomcat偶然中看到了玄机, 竟然有人在tomcat的启动参数(catalina.sh)里面加了
-Djava.rmi.server.hostname=B服务器IP 。 看到这个就好办了, 删掉这个不知道谁写死的RMI主机名问题就解决了。
原文地址:http://blog.csdn.net/wenniuwuren/article/details/44782819