`
xudongcsharp
  • 浏览: 477188 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring Hessian rpc

 
阅读更多

一、简介
     Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。下面以hessian-3.0.20版本为例演示如何将Hessian整合到Spring中。

二、配置详解
     1、在web.xml中的配置
Xml代码 

 
  <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>  
            /WEB-INF/config/applicationContext.xml,  
            /WEB-INF/Hessian-servlet.xml  
        </param-value>  
    </context-param>  
              
    <servlet>  
        <servlet-name>Hessian</servlet-name>  
        <servlet-class>  
            org.springframework.web.servlet.DispatcherServlet  
        </servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
              
    <servlet-mapping>  
        <servlet-name>Hessian</servlet-name>  
        <url-pattern>/hessian/*</url-pattern>  
    </servlet-mapping>  


       1)Hessian要求远程服务通过Servlet暴露出来,所以我们使用Spring的DispatcherServlet来暴露我们的服务。
       2)我们必须在WEB-INF目录下创建一个文件名格式为 [Servlet Name]-servlet.xml 的配置文件,由于我们设定servlet-name为Hessian,所以我们在这里创建一个名为Hessian-servlet.xml的文件。

    2、Hessian-servlet.xml文件的配置
Xml代码

  
 <!-- 业务类 -->  
    <bean id="hessianService" class="com.cjm.webservice.hessian.HessianServiceImpl"/>  
              
    <!-- 远程服务 -->  
    <bean name="/hessianService" class="org.springframework.remoting.caucho.HessianServiceExporter">  
        <property name="service" ref="hessianService"/>  
        <property name="serviceInterface">  
            <value>  
                com.cjm.webservice.hessian.HessianService  
            </value>  
        </property>  
    </bean>  


        1)实际业务类是通过Spring的HessianServiceExporter类来暴露给客户端的。
        2)service:指定服务对应的业务类。
        3)serviceInterface:指定业务类实现哪个接口。Spring推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露。
        4)Hessian的远程服务名为/hessianService。笔者使用的web服务器是Tomcat-5.5.23,端口是8888,web应用名为spring2,则远程服务的URL为:http://localhost:8888/spring2/hessian/hessianService。

    3、业务类源代码
Java代码

  
 //接口类:  
    public interface HessianService {  
        public String sayHello(String username);  
        public HessianModel getHessianModel(String username, String password);  
    }  
              
    //实现类:  
    public class HessianServiceImpl implements HessianService {  
        public String sayHello(String username){  
            return "Hello " + username;  
        }   
      
        public HessianModel getHessianModel(String username, String password) {  
            return new HessianModel(username, password);  
        }  
    }  
              
    //领域模型类:  
    public class HessianModel implements Serializable{  
        private String username;  
        private String password;  
                      
        public HessianModel(String username, String password){  
            this.username = username;  
            this.password = password;  
        }  
        ……  
    }  




    4、客户端调用服务范例
         1)在Jsp页面中调用服务
Java代码 

 
  String url = "http://localhost:8888/spring2/hessian/hessianService";  
    HessianProxyFactory factory = new HessianProxyFactory();  
    HessianService hessianServer =   
                (HessianService)factory.create(HessianService.class, url);  
    String ret = hessianServer.sayHello("Raymond.chen");  
    out.print(ret);  
              
    HessianModel model = hessianServer.getHessianModel("uid", "pwd");  
    out.print("username: " + model.getUsername() + "<br>");  



             A)结果显示:Hello Raymond.chen
             B)客户端程序必须引用hessian-3.0.20.jar文件和远程服务对应的接口类。
             C)当调用的远程服务方法返回一个自定义类时,该自定义类必须实现Serializable接口。

       2)在Spring环境中调用服务
Xml代码

  
 <bean id="testHessianService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">  
        <property name="serviceUrl" value="http://localhost:8888/spring2/hessian/hessianService"/>  
        <property name="serviceInterface" value="com.cjm.webservice.hessian.HessianService"/>  
    </bean>  
                  
    <!- Struts2中调用服务 -->  
    <bean id="orgAction" class="com.cjm.web.action.OrganizationAction" parent="baseAction">  
        <property name="organizationService" ref="organizationService"/>  
        <property name="testHessianService" ref="testHessianService"/>  
    </bean>  



    OrganizationAction.java部分源代码:
Java代码

    private HessianService testHessianService;  
                  
    HessianModel model = testHessianService.getHessianModel("uid", "pwd");  
    System.out.println("username: " + model.getUsername()); 



        A)使用HessianProxyFactoryBean来连接服务。
        B)serviceUrl:远程服务的URL。
        C)serviceInterface:服务对应的接口类。
分享到:
评论

相关推荐

    spring springmvc hessian rpc客户端及服务端示例demo

    本示例着重介绍如何在Spring和SpringMVC框架中集成Hessian RPC,以实现客户端和服务端的通信。 Hessian是一种轻量级的二进制Web服务协议,由Caucho公司开发。它具有较高的传输效率,支持Java和.NET等多种语言,特别...

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis

    本文主要讨论的是如何将Hessian RPC与RMI技术整合到Structs、Spring、Hibernate和Ibatis这四个关键的Java开发框架中,以构建一个高效、灵活的分布式应用程序。 1. **Hessian配置说明**: Hessian的配置通常涉及...

    hessian轻量级 rpc实现

    《Hessian轻量级RPC实现详解》 在分布式系统中,远程过程调用(Remote Procedure Call,简称RPC)是一种常用的技术,它使得客户端能够像调用本地方法一样调用远程服务器上的服务。Hessian,由Caucho Technology开发...

    spring+hessian搭建rpc体系

    如果用tomcat部署服务器,需要hessian的认证,请在E:\tomcat\apache-tomcat-7.0.69\conf\tomcat-users.xml下面配置信息:如下 &lt;role rolename="Hessian"/&gt; 账号" password="密码" roles="Hessian"/&gt;

    Hessian的Spring配置

    在Spring框架中,Hessian是一种轻量级的远程方法调用(RPC)协议,它能够实现Java对象到字节流的序列化,从而使得服务端的对象可以在客户端直接调用,仿佛对象就在本地一样。Hessian提供了高效的二进制RPC协议,使得...

    Hessian与Spring整合需要jar包

    在Java开发中,Hessian和Spring是两个非常重要的框架,它们各自在不同的领域发挥着关键作用。Hessian是一种轻量级的远程方法调用(RPC)协议,它基于HTTP协议,能够有效地传输二进制数据,提高网络通信效率。而...

    spring hessian的使用

    Spring Hessian是一个基于Java的RPC框架,它允许远程方法调用(RMI)通过HTTP协议进行。这个技术由Caucho公司开发,目的是提供轻量级、高效的远程服务调用方式。在Spring框架中,Hessian服务可以被方便地集成,使得...

    Spring集成Hessian案例

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而Hessian则是一种高效的RPC(远程过程调用)协议,它允许服务提供者和消费者之间进行二进制远程方法调用。本案例主要关注如何将Spring与Hessian进行...

    spring 集成 hessian例子

    Hessian是一个轻量级的remoting onhttp工具,使用...采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址为:http://blog.csdn.net/likunwen_001/article/details/78119765

    spring aop hessian 基础demo 部署即可运行

    Spring AOP和Hessian是两个在Java开发中广泛使用的技术,尤其在分布式系统和服务治理中。下面将详细解释这两个概念以及它们如何结合使用。 **Spring AOP(面向切面编程)** Spring AOP是Spring框架的一个重要组成...

    spring整合hessian进行远程通讯

    标题中的“spring整合hessian进行远程通讯”是指在Spring框架中使用Hessian库来实现远程过程调用(RPC)。这是一个常见的技术组合,用于构建分布式系统,使得应用组件之间可以跨网络进行高效通信。 Hessian是一种二...

    基于spring+hessian框架的webservice实例

    本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...

    spring+hessian+maven整合.zip

    【标题】:“Spring + Hessian + Maven 整合”是一个基于Java的分布式服务开发实践,它结合了Spring框架的强大功能,Hessian的轻量级RPC(远程过程调用)协议,以及Maven作为项目构建和依赖管理工具。这个压缩包包含...

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

    Spring Web Flow(SWF)是一个强大的MVC框架,用于构建具有复杂导航逻辑的Web应用程序,而Hessian则是一种轻量级的二进制RPC协议,能够有效地减少网络传输的数据量,提高服务调用的效率。这两者的结合可以为大型...

    Hessian和Spring集成示例

    在IT行业中,Hessian和Spring的集成是服务端开发中常用的一种技术,它允许我们将Java对象作为远程服务进行调用,极大地提高了开发效率和系统的可扩展性。下面将详细讲解Hessian与Spring集成的关键知识点。 首先,...

    Hessian(Spring集成的)的应用与研究

    在提供的压缩包文件中,`hessianRPC`可能包含了服务端的实现,而`hessianRPCclient`则是客户端的实现。这些文件通常包括了服务的接口定义、实现类、以及Spring的配置文件。开发者可以通过阅读和分析这些代码来理解...

    spring mvc hessian maven简单实例

    Hessian则是一种轻量级的远程方法调用(RPC)协议,它能将Java方法调用序列化为二进制流,以提高网络通信效率。Maven是Java项目管理工具,它帮助开发者管理依赖关系、构建项目以及执行测试。 在"Spring MVC Hessian...

    spring、hessian通过tomcat的简单环境应用源代码

    Hessian则是一种轻量级的RPC(远程过程调用)协议,它能够高效地进行二进制序列化,使得远程服务调用变得更加便捷。 【描述】中提到的"里面有具体的实例程序",意味着这个压缩包可能包含了一个完整的示例项目,该...

    Hessian与spring整合

    在IT行业中,Hessian是一种轻量级的远程过程调用(RPC)协议,它使得服务端的方法可以直接在客户端被调用,仿佛它们就在本地一样。Hessian基于HTTP协议,使用二进制编码,以提高传输效率和性能。而Spring框架是Java...

    Spring整合Hessian访问远程服务

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Hessian则是一种轻量级的RPC(Remote Procedure Call)协议,它允许服务提供者通过HTTP协议向服务消费者提供二进制格式的服务调用。本篇文章将深入探讨如何将...

Global site tag (gtag.js) - Google Analytics