`
witchan
  • 浏览: 9612 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

通过Spring使用远程访问和web服务

 
阅读更多

   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的远程访问与Web Service

    Spring 实现远程访问详解——rmi

    Spring远程访问通过使用普通POJOs,能更容易的开发远程访问服务。目前,Spring远程访问的主要技术如下: 1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,...

    Spring 远程调用 -- C# 访问java WEB 服务

    本示例聚焦于一个具体的场景:使用C#客户端远程调用基于Spring框架的Java Web服务。以下将详细阐述涉及的技术点。 首先,Spring框架是Java领域的一个核心组件,尤其在企业级应用开发中广泛使用。它提供了一个全面的...

    Spring 实现远程访问详解——webservice

    Spring Web Services 是基于 Spring 框架的 Web 服务框架,主要侧重于基于文档驱动的Web服务,提供 SOAP 服务开发,允许通过多种方式创建 Web 服务。本章利用Apache CXF构建和开发webservice. 1. webservice远程...

    Spring 实现远程访问详解——jms和activemq

    本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. 什么是Apache ActiveMq Apache ActiveMq是最流行和最强大的开源消息和集成服务器。同时Apache ActiveMq...

    Spring应用开发实战Web Service WS

    1. **Spring支持的远程访问技术**:Spring框架支持多种远程访问技术,包括RMI(Remote Method Invocation)、JAX-RPC(Java API for XML-based Remote Procedure Call)、Hessian、Burlap、XFire以及Spring自带的...

    Spring远程调用使用http方式

    通过合理的配置和服务接口的设计,我们可以构建出灵活、可扩展的应用系统。不过,需要注意的是,HTTP远程调用可能会引入额外的网络延迟,因此在性能敏感的场景下,可能需要考虑其他的远程调用技术,如RMI或gRPC。

    Spring集成Cxf调用WebServices

    这样,Spring会自动创建一个客户端代理,可以通过这个代理调用远程Web服务。 6. **CxfSpringClient**:根据提供的文件名,这可能是一个示例项目或者代码,展示了如何在Spring环境中配置和使用CXF客户端。可能包含...

    Spring整合Hessian访问远程服务

    Spring通过其强大的IoC(Inversion of Control)容器管理服务和客户端,而Hessian则提供了一种二进制的序列化方式,使得远程服务调用更为高效。整合这两者,我们可以方便地在Spring配置文件中定义服务接口和其实现,...

    使用Spring构建Restful的Web服务.pdf

    综上所述,使用Spring构建RESTful Web服务涉及到多个方面,包括架构设计、数据模型定义、依赖管理、请求处理、数据表示和性能优化等。掌握这些概念和技术,能够帮助开发者高效地开发出高质量的RESTful服务。

    Web技术:实验二-基于 Spring+SpringMVC 的 web 系统设计

    在本实验中,我们将探讨如何使用 Spring 和 SpringMVC 框架构建一个简单的 Web 应用系统。Spring 是一个全面的 Java 应用开发框架,而 SpringMVC 是其用于构建 MVC(Model-View-Controller)架构的 Web 应用部分。这...

    在 Spring Web Flow 项目中应用 Hessian 服务

    在分布式环境中,Hessian服务可以被Spring容器轻松地管理和消费,通过Spring的`HessianProxyFactoryBean`,开发者可以方便地创建客户端代理来调用远程服务。 要在Spring Web Flow项目中集成Hessian服务,我们需要...

    Spring+webservice例子

    学习这个例子,开发者可以了解如何在Spring环境中构建、部署和测试Web服务,理解服务提供者和服务消费者的实现细节。此外,由于没有依赖外部库,这也有助于理解基本的组件和机制,对于初学者来说是很好的实践练习。...

    Spring Framework 5 中文文档

    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服务与数据库操作设计源码

    本源码提供了一个基于Spring MVC、CXF和Hibernate的Web服务与数据库操作设计。...这个系统通过Web服务技术(webservice)实现了对数据库数据的增删查操作,适合需要进行远程数据访问和操作的应用场景。

    Spring集成axis2实现webservice所用到的包

    例如,可以通过Spring的安全框架实现Web服务的安全访问控制,使用Spring的事务管理功能保证服务操作的一致性,还可以通过缓存和负载均衡策略提高服务的响应速度和可用性。 总结来说,Spring集成Axis2实现Web服务...

    Flex入门源码 远程java访问 spring集成

    在本项目中,"包括访问spring配置对象的两种方式"可能指的是通过AMF和HTTPService两种不同的通信机制来访问Spring服务。序列化机制的对应实现可能是使用Flex的FlashRemoting或XML/JSON解析库,将Flex的数据模型转换...

    spring mq集成 web工程发送和接收消息例子

    一旦启动,你可以在默认的8161端口上访问Web管理界面。 2. **添加依赖**:在你的Web工程中,需要引入Spring和ActiveMQ的相关依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    webservice,通过spring mybiatis 访问数据库mysql

    WebService是一种基于XML的互联网协议,它允许不同的应用程序之间交换数据和服务。在本项目中,我们结合了Spring、MyBatis以及MySQL,构建了一个能够通过WebService接口访问数据库的应用。下面将详细阐述这些技术...

Global site tag (gtag.js) - Google Analytics