`
iluoxuan
  • 浏览: 579787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hession

    博客分类:
  • java
 
阅读更多

一、首先先说Hessian是什么?
    Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信。Hessian的初衷就是支持动态类型,格式紧凑,跨语言Hessian是使用自己的序列化机制实现的编组和反编组,其支持的数据类型是有限制的,不支持复杂的对象,可以穿透防火墙,在这里不得不说一下RMI:RMI是一组用户开发分布式应用程序的API。他使用的是java序列化机制实现调用及返回值的编组于反编组。它使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。他可以被看做是RPC的Java版本,因为传统的RPC并不能很好的应用于分布式对象系统。而Java RMI则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。他也有它的缺点,他只能通过RMI协议来进行访问无法通过HTTP协议访问,无法穿透防火墙。
    还有一种远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的优点。试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。
二、写一个简单的hessian通信所需要知道写哪些内容?
Hessian:写一个Hessian需要注意的问题:
     1、JAVA服务器端必须具备以下几点
        包含Hessian的jar包
        设计一个接口,用来给客户端调用
        实现该接口的动能
        配置web.xml,配置相应的servlet
        对象必须实现Serializable接口
        对于复杂对象可以使用Map的方法传递
     2、客户端必须具备以下几点:
        java客户端包含Hessian.jar包
        具有和服务器端结构一样的接口和实体类。包括命名空间都最好一样。利用HessianProxyFactory调用远程接口
三、简单hessian实例:
1、在服务端的接口:
public interface IHello {

    String sayHello();
   
}
2、在服务端的实现类:
public class IHelloImpl extends HessianServlet implements IHello {

    @Override
    public String sayHello() {
        // TODO Auto-generated method stub
        return "Hello,I from HessianService";
    }

}
3、在客户端的类:
public class ClientTest {

    public static String url = "http://127.0.0.1:8080/HessianService/Hello";
    public static void  main(String[] args){
        HessianProxyFactory factory = new HessianProxyFactory();
        try {
            IHello iHello = (IHello) factory.create(IHello.class, url);
            System.out.println(iHello.sayHello());
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
3、先将服务器端的类link到客户端,或者是将服务器端打包放到客户端,
4、在web.xml中进行配置:
服务器端: <servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>
      <param-name>home-class</param-name>
      <param-value>com.kcpt.hessian.service.IHelloImpl</param-value>
    </init-param>
    <init-param>
      <param-name>home-api</param-name>
      <param-value>com.kcpt.hessian.service.IHello</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/Hello</url-pattern>
  </servlet-mapping>

执行成功:输出Hello,I from HessianService,这是简单的hessian实现方式,看起来比较简单

分享到:
评论

相关推荐

    java开发常用jar包之Hession.rar

    Java开发过程中,Hession是一个非常重要的工具,它主要用于服务间通信,尤其是跨语言服务调用。Hession基于HTTP协议,采用二进制序列化方式,能够高效地进行远程方法调用(RPC)。这个RAR压缩包“java开发常用jar包...

    hession之经典入门例子

    《Hession:经典入门实例详解》 Hession是一款开源的RPC框架,由Caucho公司开发,主要用于Java和其它语言之间的高效、简单的服务调用。它以二进制序列化的方式,提供了比XML-RPC更快的数据传输效率。在这个经典入门...

    hession文档(与spring兼容)

    Hession 是一个高性能的RPC(Remote Procedure Call)框架,它主要设计用于Java应用程序之间的通信,但也能与其他语言兼容。Hession 提供了一种简洁、高效的方式来进行二进制序列化,使得远程调用如同本地方法调用...

    dubbo_rpc_hession_rmi

    总结,"dubbo_rpc_hession_rmi"这个主题涵盖了Dubbo作为RPC框架的核心概念,Hessian作为RPC协议的实现,以及RPC基础理论。通过学习这些内容,开发者可以更好地理解和应用分布式服务框架,提高系统的可扩展性和可维护...

    hession入门例子

    Hession 是一种高效的RPC(Remote Procedure Call)协议,由阿里巴巴开源,主要用于Java和Java之间的通信。它以二进制格式序列化对象,使得网络传输效率更高,尤其在处理大量数据时,性能表现优越。Hession 提供了...

    hession调用

    在“Hession调用”中,核心概念包括服务端(Server)和客户端(Client)。服务端提供一系列接口或方法,通过Hession协议暴露这些接口供客户端调用。客户端则通过HTTP请求调用这些服务,就像调用本地方法一样简单。 ...

    Hession与SpringMVC整合的例子程序

    Hession与SpringMVC整合的例子程序,HseServer.zip为服务器端,HseClient.zip为客户端 pom.xml为引用的jar,可以删除一些无用的引用。版本为JDK8,Spring4.3.4,hessian4.0.38

    hession服务端

    hession服务端

    Hession简介共3页.pdf.zip

    很抱歉,根据您提供的信息,"Hession简介共3页.pdf.zip"似乎是一个关于Hession框架的简短介绍,但实际的压缩包内容列表中提到的是"赚钱项目",这与Hession的主题不相符。Hession是一个开源的RPC(Remote Procedure ...

    Hession与Webservice的区别共2页.pdf

    【标题】:Hession与Web服务的区别 在IT领域中,Hession和Web服务(主要指SOAP Web服务)是两种不同的远程调用技术,用于实现应用程序间的通信。它们各自具有独特的特性和适用场景,理解两者之间的差异对于选择合适...

    Hession与Webservice的区别共2页.pdf.zip

    标题中的“Hession与Webservice的区别”提示我们讨论的主题是两种不同的服务通信协议:Hession和Web服务(通常指的是SOAP或RESTful Web服务)。这两者都是用于不同应用程序之间交换数据的方式,但它们在实现方式、...

    hession入门及注入spring

    【Hession入门及注入Spring】 Hessian是一种轻量级的RPC(Remote Procedure Call)协议,它基于HTTP协议,主要用于提供二进制序列化的远程方法调用。Hessian使得Java对象能够在网络间高效地进行传输,简化了分布式...

    webservices学习之hession

    【标题】:“Web服务学习之Hession” 在Web服务领域,Hession是一个高效、轻量级的二进制RPC框架,主要用于Java与Java之间或Java与其他语言之间的远程调用。它能够快速地序列化和反序列化Java对象,使得网络通信...

    hession实例代码(文件上传和下载)

    Hession 是一个高效的RPC(Remote Procedure Call)框架,它由淘宝开发并开源,主要用于Java与Java之间、Java与其他语言之间的高性能远程调用。Hession利用HTTP作为传输协议,以序列化的方式处理各种类型的数据,...

    hession例子

    Hession是一种轻量级的RPC(远程过程调用)框架,它主要用于Java应用程序之间进行高效、快速的数据交换。Hession基于HTTP协议,采用二进制序列化的方式,使得跨网络的通信性能得到显著提升,尤其适合于服务端之间的...

    springmvc+velocity+hession+ibatis

    标题 "springmvc+velocity+hession+ibatis" 涉及到的是一个使用Spring MVC、Velocity、Hessian和iBatis构建的Web应用程序。这些技术是Java开发中的关键组件,让我们逐一深入理解它们: 1. **Spring MVC**:Spring ...

    hession整合spring

    在IT行业中,Hession是一种高效的RPC(Remote Procedure Call)协议,它主要用于Java应用程序之间的通信,尤其是在分布式系统中。Hession提供了序列化和反序列化的功能,使得Java对象能够以二进制流的形式在网络间...

    hession远程调用分享

    《Hessian远程调用技术详解》 在分布式系统中,远程调用是常见的通信方式,它使得服务可以跨越网络边界,实现组件之间的交互。Hessian,由Caucho公司开发,是一种高效的二进制RPC(Remote Procedure Call)协议,常...

    采用(rest ,hession,cxf)几种技术实现webservice

    解压提供的"webservice(rest_cxf_hession)"压缩包后,你将看到一个结构化的Maven项目,包含示例代码和配置文件,可以直接运行和测试这三种Web服务技术的实现。 总结来说,REST、Hessian和CXF是实现Web服务的三种...

Global site tag (gtag.js) - Google Analytics