Spring提供类用于集成各种远程访问技术。这种对远程访问的支持可以降低你在用POJO实现支持远程访问业务时的开发难度。目前,Spring提供对下面四种远程访问技术的支持:
*远程方法调用(RMI)。通过使用RmiProxyFactoryBean和RmiServiceExporter,Spring支持传统的RMI(使用java.rmi.Remote interfaces 和 java.rmi.RemoteException)和通过RMI调用器(可以使用任何Java接口)的透明远程调用。
*Spring的HTTP调用器。Spring提供一种特殊的远程调用策略支持任何Java接口(象RMI调用器一样),它允许Java序列化能够通过HTTP传送。对应的支持类是HttpInvokerProxyFactoryBean和HttpInvokerServiceExporter。
*Hessian。通过使用HessianProxyFactoryBean和HessianServiceExporter,你可以使用Caucho提供的轻量级基于HTTP的二进制协议透明地提供你的业务。
*Burlap。Burlap是基于XML的,它可以完全代替Hessian。Spring提供的支持类有BurlapProxyFactoryBean和BurlapServiceExporter。
*JAX RPC (TODO).
下面简单讨论使用HessianHTTP远程调用业务。
Hessian简要介绍:
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it
is well-suited to sending binary data without any need to extend the protocol with attachments.
org.springframework.remoting.caucho
Class HessianProxyFactoryBean
java.lang.Object
org.springframework.remoting.support.RemoteAccessor
org.springframework.remoting.support.UrlBasedRemoteAccessor
org.springframework.remoting.caucho.HessianClientInterceptor
org.springframework.remoting.caucho.HessianProxyFactoryBean
一. 为Hessian建立DispatcherServlet
Hessian使用一个特定的servlet来通过HTTP通讯。使用Spring的DispatcherServlet概念,你可以很容易地创建这样的servlet来提供你的业务。首先我们必须在你的应用中创建一个新的servlet(下面来自web.xml):
<servlet>
<servlet-name>remote</servlet-name>
<servletclass>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
你可能熟悉Spring的DispatcherServlet概念,如果是的话,你得在WEB-INF目录下建立一个应用上下文,remoteservlet.xml 。这个应用上下文会在下一节中使用。
二. 使用HessianServiceExporter提供你的bean
在这个新的应用上下文remote-servlet.xml中,我们将创建一个HessianServiceExporter来输出你的业务:
<bean id="myService" class="example.myServiceImpl">
<!-- any additional properties, maybe a DAO? -->
</bean>
<bean name="/myService" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service"><ref bean="myService"/></property>
<property name="serviceInterface">
<value>example.myService</value>
</property>
</bean>
现在我们准备在客户端连接这个业务。我们使用BeanNameUrlHandlerMapping,就不需要指定处理器映射将请求(url)映射到业务上,因此业务提供在http://HOST:8080/myService上。
三.客户端连接业务:
我们在客户端使用HessianProxyFactoryBean来连接业务。我们将创建一个单独的bean工厂或应用上下文.然后使用接口就象调用bean一样简单了!
具体操作步骤如下:
1、引入jar包--hessian-3.0.13.jar。
2、在xml文件中配置用于实现接口的bean。
<bean id="myService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceInterface">
<value>src.example.myService</value>
</property>
<property name="serviceUrl">
<value>http://HOST:8080/myService</value>
</property>
</bean>
<bean id="myBO" class="src.example.MyBOImpl" singleton="true">
<property name="myService"><ref bean="myService"/></property>
</bean>
3、在本地新建一个名为ImyService的接口。并在该接口中声明要调用的函数。
package src.example;
/*站内信接口服务*/
public interface ImyService{
public void Hello(String userid, String username);
}
4、在 MyBOImpl.java中,建函数doHello。在该函数中调用myService.Hello("100","lili"),并注入ImyService实例对象。
即
private ImyService myService;
public void myService(ImyService myService{
this.myService=myService;
}
分享到:
相关推荐
基于Spring的远程访问与Web Service
Spring远程访问通过使用普通POJOs,能更容易的开发远程访问服务。目前,Spring远程访问的主要技术如下: 1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,...
本示例聚焦于一个具体的场景:使用C#客户端远程调用基于Spring框架的Java Web服务。以下将详细阐述涉及的技术点。 首先,Spring框架是Java领域的一个核心组件,尤其在企业级应用开发中广泛使用。它提供了一个全面的...
Spring Web Services 是基于 Spring 框架的 Web 服务框架,主要侧重于基于文档驱动的Web服务,提供 SOAP 服务开发,允许通过多种方式创建 Web 服务。本章利用Apache CXF构建和开发webservice. 1. webservice远程...
本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. 什么是Apache ActiveMq Apache ActiveMq是最流行和最强大的开源消息和集成服务器。同时Apache ActiveMq...
1. **Spring支持的远程访问技术**:Spring框架支持多种远程访问技术,包括RMI(Remote Method Invocation)、JAX-RPC(Java API for XML-based Remote Procedure Call)、Hessian、Burlap、XFire以及Spring自带的...
通过合理的配置和服务接口的设计,我们可以构建出灵活、可扩展的应用系统。不过,需要注意的是,HTTP远程调用可能会引入额外的网络延迟,因此在性能敏感的场景下,可能需要考虑其他的远程调用技术,如RMI或gRPC。
这样,Spring会自动创建一个客户端代理,可以通过这个代理调用远程Web服务。 6. **CxfSpringClient**:根据提供的文件名,这可能是一个示例项目或者代码,展示了如何在Spring环境中配置和使用CXF客户端。可能包含...
Spring通过其强大的IoC(Inversion of Control)容器管理服务和客户端,而Hessian则提供了一种二进制的序列化方式,使得远程服务调用更为高效。整合这两者,我们可以方便地在Spring配置文件中定义服务接口和其实现,...
综上所述,使用Spring构建RESTful Web服务涉及到多个方面,包括架构设计、数据模型定义、依赖管理、请求处理、数据表示和性能优化等。掌握这些概念和技术,能够帮助开发者高效地开发出高质量的RESTful服务。
在本实验中,我们将探讨如何使用 Spring 和 SpringMVC 框架构建一个简单的 Web 应用系统。Spring 是一个全面的 Java 应用开发框架,而 SpringMVC 是其用于构建 MVC(Model-View-Controller)架构的 Web 应用部分。这...
在分布式环境中,Hessian服务可以被Spring容器轻松地管理和消费,通过Spring的`HessianProxyFactoryBean`,开发者可以方便地创建客户端代理来调用远程服务。 要在Spring Web Flow项目中集成Hessian服务,我们需要...
学习这个例子,开发者可以了解如何在Spring环境中构建、部署和测试Web服务,理解服务提供者和服务消费者的实现细节。此外,由于没有依赖外部库,这也有助于理解基本的组件和机制,对于初学者来说是很好的实践练习。...
1. 入门指南 2. 介绍Spring框架 3. IoC容器 4. 资源 5. 验证、数据绑定和类型转换 6. Spring表达式语言 ...24. 使用Spring提供远程和WEB服务 25. 整合EJB 26. JMS 28. 使用Spring提供远程和WEB服务 32. 缓存
本源码提供了一个基于Spring MVC、CXF和Hibernate的Web服务与数据库操作设计。...这个系统通过Web服务技术(webservice)实现了对数据库数据的增删查操作,适合需要进行远程数据访问和操作的应用场景。
在本项目中,"包括访问spring配置对象的两种方式"可能指的是通过AMF和HTTPService两种不同的通信机制来访问Spring服务。序列化机制的对应实现可能是使用Flex的FlashRemoting或XML/JSON解析库,将Flex的数据模型转换...
例如,可以通过Spring的安全框架实现Web服务的安全访问控制,使用Spring的事务管理功能保证服务操作的一致性,还可以通过缓存和负载均衡策略提高服务的响应速度和可用性。 总结来说,Spring集成Axis2实现Web服务...
一旦启动,你可以在默认的8161端口上访问Web管理界面。 2. **添加依赖**:在你的Web工程中,需要引入Spring和ActiveMQ的相关依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
WebService是一种基于XML的互联网协议,它允许不同的应用程序之间交换数据和服务。在本项目中,我们结合了Spring、MyBatis以及MySQL,构建了一个能够通过WebService接口访问数据库的应用。下面将详细阐述这些技术...