IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Hessian介绍

    lfsf802发表于 2015-03-29 20:41:04
    love 0

    简介

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
    

    技术对比

    谈到remoting,会想到RMI和webservice规范,这两种规范的实现也是非常之多的,这篇博客介绍的Hessian也是RMI的一种实现,而且是二进制协议的,所以这个就比webservice性能要高一些。并且hessian在生成二进制方面也是非常有优势的,生成的二进制相比其他远程技术会小一些。
    

    实例

    建立MAVEN项目,在pom.XML文件中引入
    
    <dependency>
        <groupId>com.cauchogroupId>
        <artifactId>hessianartifactId>
        <version>4.0.7version>
    dependency>
    
    在web.XML中配置一个servlet配置
    
    <servlet>
            <servlet-name>registerservlet-name>
            <servlet-class>com.caucho.hessian.server.HessianServletservlet-class>
            <init-param>
                <param-name>service-classparam-name>
                <param-value>com.hessian.hessiantest.service.imp.RegisterServiceImplparam-value>
            init-param>
        servlet>
    <servlet-mapping>
        <servlet-name>registerservlet-name>
        <url-pattern>/registerurl-pattern>
    servlet-mapping>
    
    编写一个service实现
    
    private String greeting = "Hello, world, 你已经注册成功啦";
        @Override
        public void setMsg(String greeting) {
            this.greeting=greeting;
            System.out.println("成功消息打印:"+greeting);
        }
    
        @Override
        public String hello() {
             return greeting;
        }
    
    配置jetty服务器,启动maven项目部署。
    
    编写测试程序
    
        String url ="http://127.0.0.1:8081/hessian/register";
        HessianProxyFactory factory = new HessianProxyFactory();
        IRegisterService registerService = (IRegisterService) factory.create(IRegisterService.class, url);
        System.out.println("注册消息:" + registerService.hello());
        registerService.setMsg("Hello!world");
        System.out.println("欢迎消息:" + registerService.hello());
    
    直接执行main方法,会出现下面堆栈信息,表明调用成功
    

    堆栈

    其余优点

    另外一个优点是hessian可以非常容易的与spring框架集成。有兴趣的童鞋可以自行研究一下。
    

    总结

    目前很多分布式系统都离不开远程方法调用,也许你在用ejb,也许你在用webservice,异或是在用其他的一些技术,选择合适的才是最重要的,所以有必要学习一下hessian,以备将来不时之需。
    


沪ICP备19023445号-2号
友情链接