您的位置:首页 > 编程语言 > Java开发

Spring3.x--使用远程调用

2014-09-12 19:26 357 查看
Spring支持几种不同RPC模型,包括远程方法调用(RMI)、Hessian和Burlap和Spring自带的Http invoker

一、RMI

1、使用rmi将personService导出为RMI服务





就这样把personService接口的实现发布为一个RMI服务,我们还可以通过将RMI注册表绑定到不同的端口和主机上,通过registryPort和registryHost属性指定。

Spring的RmiProxyFactoryBean是一个工厂Bean,该Bean可以为RMI服务创建代理。使用RmiProxyFactoryBean引用一个personService的RMI服务很简单。



注意本地的domain类的包名要与远程相同类的包名一样。

RMI是一种实现与远程服务交互的非常好的方式,但是它存在限制。首先,RMI很难穿越防火墙,这是因为RMI使用任意端口来交互——这是防火墙所不允许的。

二、Hessian和Burlap

你可能想知道如何在Hessian和Burlap之间做出选择,很大程度上,它们是一样的。唯一的区别在与Hessian的消息是二进制的,而Burlap的消息是XML。

Hessian是基于Http的,配置Hessian控制器需要将HessianServiceExporter实现为一个SpringMVC控制器。这意味着我们要使用导出的Hessian服务,我们需要两个额外的配置步骤:1、在web.xml配置url截获器 2、在Spring配置文件中配置一个URL处理器,将URL映射到Hessian服务上。





访问Hessian/Burlap服务,Hessian是基于二进制的,Burlap是基于xml的



三、Spring的HttpIvoker

跟Hessian和Burlap差不多

四、JAX-WS端点

导出独立的JAX-WS端点,当对象的生命周期不是由Spring管理的,而对象的属性又需要注入Spring所管理的Bean时,SpringBeanAutowiringSupport很有用。但是在合适的场景下,它还可以把Spring管理的Bean导出为JAX-WS端点。Spring管理的Bean发布为JAX-WS Runtime中的服务端点。不像其他服务导出器,SimpleJaxWsServiceExporter不需要为它指定一个被导出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息