Spring RMI不支持返回参数的的引用传递
最近在做一个基于RMI的可扩展框架。由于Spring很是方便,便打算用Spring的RMI特性。但是在实现如下场景时,出现了问题:程序客户端希望通过RMI获取远程服务Master的Stub,而且要以远程调用的方式使用Master提供的Service。
public class Client { Master master; // 由Spring RmiProxyFactoryBean获得。 public void someMethod() { Service service = master.getService(); service.doSomeRemotely(); } }
由于我所见过的资料中都没有关于远程返回值的引用传递。我自己做了如下尝试。
1. 让Service的实现类实现java.rmi.Remote接口;Spring报“对象不能序列化”错误。
2. 让Service的实现类同时实现java.rmi.Remote和java.io.Serializable接口;错误消失,但是对service执行的调用仍旧是本地调用(未发生在远端的JVM中)。
3. 让Service的实现类继承UnicastRemoteObject;在客户端报ClassCastException,错误提示说不能把Proxy cast为Service.
通过试验,我没有试出如何让Spring实现返回对象的引用传递。我的结论是Spring RMI返回值引用传递。如果有哪位大虾可以证实或证否我的结论的,请不吝赐教。
相关推荐
ScarletLina 2014-05-12
LychieFan 2007-06-08
GodLong 2011-06-09
agjllxchjy 2012-03-05
Bonbonwen 2011-11-17
LinuxCard 2012-10-10
XuNeely 2019-06-30
spring 2014-05-12
妖怪哪里跑 2014-03-13
lxfHaHaHa 2013-08-06
uk8692 2019-06-28
hanyujianke 2014-09-16
dlutbob 2010-06-01
JESSIEfoo 2010-01-16
JESSIEfoo 2009-04-16
dananhai 2008-02-01