最近闲来无事补充了下自己的短板,学习了下RMI,本来以为很简单的事,没想到遇到几个问题还是花了一段时间,在这记录下,测试demo代码附在后面。
RMI的原理在这不说了,百度或Google很多,只说下遇到的问题,具体问题解决方法我这说的不清楚也可以Google下。
说明:Centos6是装载VMware虚拟机中的固定IP,防火墙开,网络适配器为桥接模式;Windows10;registry port :1234;socket port:12345(开始不知道有这种端口)。
2、Server运行环境都是Windows,Client运行环境是Centos6,单网卡,运行正常。
3、Server运行环境都是Windows,Client运行环境是Centos6,多网卡,运行不正常;原因:Server运行时使用的ip和Linux使用的ip不在同一个网段下,解决方法:指定Server的hostname:java.rmi.server.hostname=要绑定的ip
4、Server运行环境是Centos6,Client运行环境是Centos6或Windows,运行不正常;
①注册端口1234没有放开,报
java.rmi.ConnectIOException: Exception creating connection to: 192.168.1.16; nested exception is:
java.net.NoRouteToHostException: No route to host (Host unreachable)
或java.rmi.ConnectException: Connection refused to host: 192.168.1.16; nested exception is:
java.net.ConnectException: Connection timed out: connect;服务器开放端口1234;
②服务器端没有指定hostname,java.rmi.server.hostname=