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返回值引用传递。如果有哪位大虾可以证实或证否我的结论的,请不吝赐教。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值