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不需要为它指定一个被导出。
一、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不需要为它指定一个被导出。
相关文章推荐
- 使用XML RPC进行远程调用
- webservice 如何允许远程访问?如果使用javascript 调用 webservice
- Flex4 中使用Spring flex 来集成BlazeDS 进行远程调用
- 不允许使用远程表值函数调用。
- 使用SSH调用Gnome Session,把远程服务器放到面前来
- 使用servlet实现远程调用
- 注册并发布一个xmlrpc远程对象(函数、类对象、客户端使用调用(对象.方法)格式)
- weblogic/jboss使用ejb3.0远程调用
- 《Spring技术内幕》学习笔记18——Spring使用Hessian实现远程调用
- 使用 xml-rpc 远程调用
- 使用XML RPC进行远程调用
- 使用rmi协议,基于cglib实现组件管理和远程方法调用
- 在 PowerShell 中使用 WMI 远程调用
- Spring中HttpInvoker远程方法调用使用实例
- hession、burlap和http invoker远程调用方案的使用和比较
- 使用RMI实现远程方法调用
- 在Oracle的存储过程中使用dblink调用远程存储过程备忘
- 使用XML RPC进行远程调用
- Android Service 的使用(三)----远程Service的调用
- 使用JAVA远程调用导致程序自动down掉,jdk1.5的debug模式系统漏洞