`
marszgl
  • 浏览: 53599 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring发布多协议的远程服务最简单办法

阅读更多
Spring发布多协议的远程服务其实比较简单,感觉Spring这方面已经做的好了,自己没必要再去搞些什么服务池。
1.ServiceExporter

public class ServiceExporter extends RemoteExporter 
	implements Controller, InitializingBean {
	

	/**
	 *访问协议属性
	 */
	public static final String REMOTE_EXPORTER = "RemoteExporter";
	
	/**
	 *访问协议hession
	 */
	public static final String HESSIAN_SERVICE_EXPORTER = "HessianServiceExporter";
	HessianServiceExporter hessian=new HessianServiceExporter();
	/**
	 *访问协议HttpInvoker
	 */
	public static final String HTTP_INVOKER_SERVICE_EXPORTER = "HttpInvokerServiceExporter";
	HttpInvokerServiceExporter httpInvoker=new HttpInvokerServiceExporter();
	
	/**
	 *访问协议Burlap
	 */
	public static final String BURLAP_SERVICE_EXPORTER = "BurlapServiceExporter";
	BurlapServiceExporter burlap=new BurlapServiceExporter();
	
	public void setService(Object service) {
		super.setService(service);
		hessian.setService(service);
		httpInvoker.setService(service);
		burlap.setService(service);
	}

	public void setServiceInterface(Class serviceInterface) {
		super.setServiceInterface(serviceInterface);
		hessian.setServiceInterface(serviceInterface);
		httpInvoker.setServiceInterface(serviceInterface);
		burlap.setServiceInterface(serviceInterface);
	}

	
	
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception{
		//检查访问协议属性
		String remoteExporter = request.getHeader(ServiceExporter.REMOTE_EXPORTER);
		
//		访问协议Hessian
		if(remoteExporter==null) {
			hessian.handleRequest(request,response);
			return null;
		}
		
		//访问协议HttpInvoker
		if(remoteExporter.equalsIgnoreCase(ServiceExporter.HTTP_INVOKER_SERVICE_EXPORTER))
			httpInvoker.handleRequest(request,response);
		
		//访问协议Burlap
		else if(remoteExporter.equalsIgnoreCase(ServiceExporter.BURLAP_SERVICE_EXPORTER))
			burlap.handleRequest(request,response);
		
		//访问协议Hessian
		else
			hessian.handleRequest(request,response);
		
		return null;
		
	}

	public void afterPropertiesSet() throws Exception {
		hessian.afterPropertiesSet();
		burlap.afterPropertiesSet();
		httpInvoker.afterPropertiesSet();
	}


2.把接口发布为多协议远程服务
<bean name="/log/BusinessLogMessageService" class="bpo.ServiceExporter">
		<property name="service" ref="log.BusinessLogMessageBPOTx"/>
		<property name="serviceInterface" value="log.ILogMessageService"/>
	</bean>	
分享到:
评论
2 楼 taolisi 2007-04-12  
你好,想问你一个问题,有没有什么办法可以获得hessian和burlap传输过程中压缩数据的大小,然后对这两者做个比较好进行选择?
1 楼 dovecat 2007-03-23  
无所谓了,轻巧的有轻巧的用处,多功能也有多功能的用处.

相关推荐

    spring远程调用

    在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括依赖注入、面向切面编程以及企业级服务。在分布式系统中,远程调用是一个常见需求,Spring为此提供了一种轻量级的解决方案——...

    CXF+Spring+Tomcat发布WebService

    【标题】"CXF+Spring+Tomcat发布WebService"涉及的是使用Apache CXF框架与Spring框架结合,在Tomcat服务器上部署和消费Web服务的过程。这是一个常见的企业级应用开发场景,特别是对于实现基于SOAP协议的Web服务。...

    基于Spring的远程访问与Web Service

    RMI允许对象方法跨虚拟机(VM)边界被调用,Spring通过`java.rmi.Remote`接口和`java.rmi.RemoteException`异常处理机制,简化了RMI的配置和使用,使得开发者可以更容易地创建和消费RMI服务。 ### 2. HTTP Invoker ...

    spring remoting

    Spring Remoting提供了多种远程调用协议的抽象,如RMI、Hessian、 Burlap、HTTP Invoker和JMS等,允许开发者根据项目需求选择最适合的方案。 1. RMI(Remote Method Invocation):RMI是Java平台上的标准远程调用...

    spring recipe 英文版

    除了传统的 Java EE 服务之外,Spring 还支持远程调用等高级功能。 #### 15. Spring Messaging 随着微服务架构的流行,消息传递成为了不可或缺的技术。Spring 提供了完整的消息传递支持。 #### 16. Spring ...

    cxf+spring+client

    它提供了SOAP和RESTful服务的实现,并且与Spring框架无缝集成,使得配置和服务管理变得更加简单。在这个"**cxf+spring+client**"的主题中,我们将深入探讨CXF与Spring框架结合创建客户端服务的细节,以及如何利用...

    spring dubbo zookeeper实现简单demo

    在这个Demo中,可能会展示最基础的同步调用,即服务消费者通过服务接口直接调用服务提供者的方法,并等待返回结果。 6. **测试验证**:通常会有一个测试类,通过模拟消费者调用服务提供者的某个接口,验证整个服务...

    cxf+spring整合

    Spring还包含一套完整的数据访问、事务管理、安全性和远程服务支持的组件,使得开发者能够构建健壮且模块化的应用程序。 3. **CXF与Spring的整合** 将CXF与Spring整合,可以利用Spring的DI特性来管理CXF服务及其...

    spring 4.3 开发手册最新版

    - **Web**:提供了丰富的Web应用开发功能,包括MVC框架、远程调用、Web服务等。 - **测试**:为单元测试和集成测试提供了便利,可以方便地进行Mock操作。 #### 三、使用场景 - **企业级应用开发**:Spring框架因其...

    Spring全家桶.pdf

    本篇文章将深入探讨Spring框架中与邮件服务相关的知识点,帮助开发者理解如何利用Spring轻松实现邮件的发送,以及相关的基础协议知识。 一、邮件传输基础 1. SMTP(Simple Mail Transfer Protocol):简单邮件传输...

    spring开发手册

    9. **远程调用**:Spring支持RMI、Hessian、 Burlap等远程调用协议,方便分布式系统的开发。 10. **Web服务**:Spring Web Services模块提供了创建和消费SOAP服务的能力,同时支持WSDL-first和代码-first的开发方式...

    SpringCloud教程

    通过 Spring Cloud Config 可以将应用的配置信息统一存储在 Git 仓库或其他版本控制系统中,并通过 HTTP 协议远程拉取配置。 - **服务端**:Spring Cloud Config Server 作为配置服务器,用于存放应用程序的各种...

    Spring javadoc-api.rar

    7. **MVC的REST支持**:Spring 3.0引入了对构建RESTful服务的支持,使得创建基于HTTP协议的资源变得简单。 8. **JSR-303/JSR-349 Bean Validation**:Spring 3.0集成了Bean Validation标准,用于验证Java bean属性...

    Flex4+Spring+ibatis实战系列教程

    BlazeDS 提供了 ChannelSet、MessageBroker 等组件,使得 Flex 可以通过 Topic(发布/订阅)或 Remoting(远程方法调用)的方式与服务器通信。 对于 Spring 框架,它是一个轻量级的、全面的 Java 应用开发框架,...

    webservice + spring + hibernate

    常见的Web服务协议有SOAP(简单对象访问协议)、REST(表述性状态转移)等。本项目可能采用了SOAP,它基于HTTP协议,使用XML作为消息格式,保证了服务的互操作性。 【spring框架】:Spring是Java领域中最流行的应用...

    Pro Spring 3.pdf

    Spring的远程调用支持,使得开发者能够在不同的系统或服务之间进行通信,无论是基于RMI、HTTP还是其他协议,Spring都能提供相应的支持。 ### Web应用开发 Spring MVC框架提供了强大的Web应用开发支持,包括请求...

    【SpringCloud】最全最细!微服务框架-springcloud微服务架构

    为了更好地理解微服务远程调用的过程,下面通过一个简单的示例来说明如何使用Spring Cloud中的Feign进行远程调用。 **步骤1**:创建一个Feign客户端接口 ```java @FeignClient(name = "service-provider") public ...

    spring webservices reference

    Spring WS支持多种消息传输协议,包括SOAP和非SOAP协议,并提供了对现代Web服务标准的支持,如WSDL和WS-Security。 ##### 1.2 运行环境 Spring WS的设计旨在与现有的Java EE环境无缝集成,因此它能够运行在任何支持...

Global site tag (gtag.js) - Google Analytics