RMI使用Java标准的对象序列化,但很难穿越防火墙;另一方面,Hessian、Burlap能很好地穿越防火墙,但使用自己私有的一套对象序列化机制,当数据模型非常复杂的话,就不好了。spring的Httpinvoker是基于Http的远程调用,并且使用Java的序列化机制。它的缺点就是,服务端的应用必须基于spring。除了java,还不能移植到其他语言上。
spring的用法跟hessian,burlap一样。把代理类,和服务输出类分别改成
org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean
org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter
就可以了,不用改代码就可以运行第二节的例子