构建RCP的远端调用体系 蓝图

本文分享了一个远程调用系统的实现过程,通过客户端和服务端交互完成远程方法调用,并保持了applet的安全性。作者最终选择了Spring的Remoting作为解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计一个解决远端调用的体系,用于解决重复的劳动,同时为不同的客户端调用提供统一的接口标准!
js ajax call web server
jvm client call web server
more...

[color=red][b]2009-02-15日[/b][/color]
这两天利用空闲完成了自己的调用,发现还是可以的,目前支持java的调用,已经在applet中调用远程接口!
client-->server 客户端使用jdk的proxy代理一个接口,然后分装调用参数,传递到服务端
server-->client 服务端解析参数,然后调用目标服务,然后封装调用结果和异常信息,发送到客户端
client-->who 客户端解析结果,如果有远端异常抛异常,无异常返回调用结果

整个流程,没有问题了,而且不需要破坏applet的安全性即可访问服务器!
同时采用了gzip压缩流传输数据,利用http协议包装了二进制数据

[color=red][b]2009-02-16日[/b][/color]
今天打算继续完善的,后来发现要做的工作太多了,觉得需要参考下其他的,这不就打开了spring的remoting调用代码,郁闷。。。。,发现spring的做法太好了(以前做这个的时候因为applet的安全性一直导致applet调用spring的remoting失败,但是也数字签名了,不过却未找到正确的调用方法,这两天才发现需要使用AccessController来执行方法,才可以获取资源,否则权限无效)
现在觉得直接采用spring的remoting,如果将来需要深入的话,也只会在spring的基础上做工作了

虽然最后废弃了自己写的,不过也体会到了jdk反射的魅力,有酸也有甜
发现了几个bug:
1 xwork中的2.1.2版本对于资源文件无法自动重新加载,而在之前的版本中无法设置reload=false[url=http://jira.opensymphony.com/browse/XW-671]XW-671[/url]
2 struts2的一个问题:如果servlet没有扩展名,那么将会被struts拦截

特附上spring的remoting继承体系方便大家学习下

[img]/upload/attachment/75891/232ac80c-2bda-3a69-ba46-26985e4ef73b.gif[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值