出错堆栈:
org.springframework.remoting.RemoteConnectFailureException: Cannot connect to remote service [rmi://192.168.2.61/Service]; nested exception is java.rmi.ConnectException: Connection refused to host: 192.168.7.11; nested exception is:
java.net.ConnectException: Connection timed out: connect
很奇怪,rmi访问的url是对的,但是后续的访问得到的IP却是双网卡中的另外一个无法访问的。
在本机做个简单试验:
System.out.println(UnicastRemoteObject.exportObject(new Remote(){},0));
输出:
Proxy[Remote,RemoteObjectInvocationHandler[UnicastRef [liveRef: [endpoint:[192.168.2.3:2339](local),objID:[0]]]]]
说明对象在没有注册出去的时候其IP就已经决定,绑定出去以后客户端就按照这个IP按图索骥。Server端有两个网卡,乱找一个就Over了。
这种方式对分布式对象注册很有用,但是碰到多IP的情况下就比较弱智了。sun的faq上给出一个简单答案:
http://java.sun.com/j2se/1.5.0/docs/guide/rmi/faq.html#netmultihomed
一句话:
System.setProperty("java.rmi.server.hostname","192.168.2.3");//建议从配置文件加载。
//解决连接超时
System.setProperty("sun.rmi.transport.tcp.responseTimeout", new Integer(Integer.MAX_VALUE).toString());
分享到:
相关推荐
一个实验课的内容,里面简单的写了一些HTTP服务器,HTTP客户端,RMI客户端和服务器
rmi客户端和服务端例子程序
rmi 客户端 和 服务端 代码
rmi技术客户端调用服务器的函数解决问题 刚刚开始准备这个rmi作业的时候,我都有点无从下手。于是我先开始一起找资料,看书,经过不断的尝试编码,以及总结错误,为后期的工作奠定了基础。 在基础知识基本搞定的...
RMI RMI-IIOP 客户端服务器交互 源代码下载
本资源是东北大学程序实践3的上机实验,是基于java的简单的客户端和服务器,多线程服务器以及远程RMI会议的代码,可以用request和response完成客户端和服务器的应答。
测试成功,RMI 服务器与客户端源码,很简单,自己做的,适合初学者。
编写简单的HTTP 1.0客户端/服务器程序:.编写多线程Web服务器:编写简单的RMI程序 包含实验PPT 实验报告
亲测可用,可作为java rmi入门程序,一看即懂。
Java_RMI_ClientServer:RMI客户端-服务器示例
本工程用于研究RMI技术 为RMI客户端 本工程编码方式:UTF 8 参考博客地址:http: blog csdn net gaohuanjie article details 38338765
rmi-客户端-服务器 RMI 客户端和服务器的简单 Java 实现 服务器 shell 脚本会将服务器库编译为 jar,然后运行服务器。 像这样运行它: ./server.sh 现在启动客户端: ./client.sh 客户端当前实现为 Groovy 脚本...
NULL 博文链接:https://skyandcity.iteye.com/blog/1547028
编写简单的HTTP 1.0客户端/服务器程序:.编写多线程Web服务器:编写简单的RMI程序 实验
主要用于服务端部署到多个服务器上,当一个服务挂掉后,客户端自动切换使用另一个服务器上的服务。其中只上传了代码,用到的 jar 包未上传。我觉得不影响大家分析代码。
java rmi demo1 一个客户端,一个服务端,一个最顶服务端,客户端向服务端上传下载文件,服务端传输到最顶服务端,然后服务端删除文件,当客户端下载的时候,先判断服务端有无文件,如果没有的话就从最顶服务端下载...
使用rmi实现远程调用 多个客户端 一个服务端对话
在这次的项目中,对于客户端与服务器之间的通信,想了许多办法,由于做的是富客户端应用,最终将技术选定在了RMI和Java-sockets两种之间,其中RMI的灵活性不高,客户端和服务器端都必须是java编写,但使用比较方便,...
数据库服务器端使用RMI调用的方法建立连接池供客户端来访问,当客户端离开则释放连接到连接池中。
用RMI技术做得一个聊天工具,分服务器端和客户端, 原理很简单,供初学者参考学习使用