Spring RMI一开始看网上的资料感觉很简单,但一次一次的失败告诉我,那不简单,嘻嘻(当然实现之后还是蛮简单的)。
首先我是使用SpringRMI实现两个Web系统之间的通信(其实也就是一个系统调用另一个系统的某个方法),这两个Web系统是部署在一个服务器上的,而且我将rmi的Spring配置文件同我原来的系统的配置文件分开,单独写了一个配置文件(两个系统都是的),这样在服务器启动时就需要加载两个Spring的配置文件,这个是在web.xml中添加(后面介绍)。其实这些都不是很难的问题,我主要说说一些我犯的错误,以供大家参考吧。
1.一开始做测试时很2B,在服务器那端(被调用的系统端),没有启动Spring容器,在客户端这边启动了Spring容器,这肯定是会报错的,报的错大致意思是无法连接的错(哎错误忘了保存了),这是最开始的错误,也是最低级的错误,主要是一开始没理解工作原理,嘻嘻,还花了不少时间呢!
2.启动了容器,但是只加载了rmi的一个Spring配置文件(前面说过,我的rmi的Spring配置文件同系统原来的是分开的),这样其实你要不调用系统其它的bean的话是不会报错的,但我是通过Spring的annotation注入了系统的其它bean,所以会报nullPointException(空指针异常,不知道是不是这样写啊),这也难怪,启动容器时同时加载两个Spring配置文件(就是加载全部的)就好了
3.是调用返回Object对象的方法时又发生问题,网上说需要返回的Object需要实现Serializable接口(即需要可序列化),因为rmi是通过序列化对象返回的,而且所在命名空间都要一样,我一开始包名不同,所以报错,错误是java.lang.ClassNotFoundException: org.innovation.rmi.Student (no security manager: RMI class loader disabled),把包名改为一样的就可以了
4.最困难的是两个项目在Tomcat中的部署先后问题,因为一个项目需要调用另一个项目所以,被调用的得先部署,这个问题就有点纠结了,推荐几篇文章看看吧!
http://johnie-sheng.iteye.com/blog/244497
http://lvqionghua.blog.163.com/blog/static/18527742009101711251403/
分享到:
相关推荐
为了避免业务逻辑重新开发,顾使用spring rmi,把所有的bean作为rmi服务暴漏出来,在客户端只需要把项目依赖过来就ok,或者把以前的接口导入过来。 参考文档:...
Spring Rmi的使用,对Spring RMI进行全访问的介绍,并介绍了其中的源代码部分
SpringRMI小例子代码,仅供参考。SpringRMI小例子代码,仅供参考。
闲来无事,做了个Spring RMI的小例子,非常易懂。
Spring集成rmi,实现远程服务,使用RMI集成实例
spring RMI 服务(自动把service发布为RMI服务),本例子加入了spring的预处理,可以根据自己的需要把指定位置的bean发布为 RMI 服务。
spring RMI 简单例子
spring rmi 远程调用服务端和客户端源码,eclipse环境,jdk1.7.
spring rmi 客户端 服务器 调用
基于spring rmi的一些小改造,在原基础上加入了线程池控制线程数。
教您如何创建JAVA RMI ,创建Spring RMI。
java项目使用spring rmi所涉及到的包
spring和RMI分布式整合源码
Spring整合RMI的使用,实现不同项目间方法的远程调用。
springRMI接口实现
spring RMI 远程接口调用 包含服务端客户端程序,可完整运行
1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,Spring支持两个传统的RMI(使用 java.rmi.Remote接口和java.rmi.RemoteException)和通过RMI调用器实现的...
spring集成的RMI的使用 简单使用
本压缩文件包含两个Spring Java工程,演示了如何在Spring框架中使用RMI技术,欢迎下载!
spring+rmi非本地实现,包含客户端和服务端。