`
longforfreedom
  • 浏览: 198836 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hessian4.0.2笔记(一)

    博客分类:
  • JAVA
阅读更多

Hessian是什么

 

Hessian is a simple binary protocol for connecting web services. The com.caucho.hessian.client and com.caucho.hessian.server packages do not require any other Resin classes, so can be used in smaller clients, like applets.

Because Hessian is a small protocol, J2ME devices like cell-phones can use it to connect to Resin servers. Because it's powerful, it can be used for EJB services.

The Hessian specification itself is a short and interesting description.

 

 

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.

 

JAVA创建Hessian服务只需四步

 

1。创建服务接口

2。使用HessianProxyFactory创建客户端

3。服务器端实现服务接口

4。配置Servlet

 

下面将用将使用Netbeans6.8+Hessian4.0.2,经过以上四步创建一个简单的远程方法调用示例

一、创建项目

      分别创建一个名为HessianServer的JavaWeb项目和一个名为HessianClient的Java项目,

      将HessianServer设为主项目(只是方便一点,不设也无所谓)

      HessianServer上下文路径为/HessianServer(默认路径)!!!

      将hessian-4.0.2.jar分别添加至以上项目的Classpath中 下载地址http://hessian.caucho.com/

二、创建Hessian服务示例

1.创建服务接口

具体服务通过此服务器端此接口的实现类来提供,客户端通过此接口来调用实现的服务,所以HessianServer和HessianClient中都要有此接口

package org.migle.hessian;
/**
 *Hessian服务接口
 * @author migle longforfreedom@gmail.com
 * @version 0.1 2009-12-13
 *
 */
public interface Hello {

    public String sayHello(String smt);
    public void printHello(String smt);
}

 

 

2.使用HessianProxyFactory创建客户端

package org.migle.hessianclient;

import com.caucho.hessian.client.HessianProxyFactory;
import java.net.MalformedURLException;
import org.migle.hessian.Hello;

/**
 *Hessian客户端
 * @author migle longforfreedom@gmail.com
 * @version  0.1 2009-12-13
 */
public class Main {

    public static void main(String[] args) throws MalformedURLException {
        String url = "http://localhost/HessianServer/hessian";
        HessianProxyFactory factory = new HessianProxyFactory();
        Hello d = (Hello) factory.create(Hello.class, url);
        System.out.println(d.sayHello("migle"));//打印从服务器端获取的字符串
        d.printHello("Hessian"); //在服务器端控制台打印 "Hello Hessian"
    }
}

 

 

3.服务器端的服务接口实现

服务接口的实现可以是扩展自HessianServlet,也可以是直接一个POJO的实现来回避依赖于HessianServlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>hessian</servlet-name>
        <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
        <init-param>
            <param-name>service-class</param-name>
            <param-value>org.migle.hessian.impl.HelloImpl</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>hessian</servlet-name>
        <url-pattern>/hessian</url-pattern>
    </servlet-mapping>
</web-app>

 

 4.Servet配置

package org.migle.hessian.impl;

import org.migle.hessian.Hello;

/**
 * 服务接口的具体实现
 * @author migle
 * @version v0.1 2009-12-13
 */
public class HelloImpl implements Hello {

    public String sayHello(String smt) {
        return smt != null ? "hello " + smt : "hello hessian";
    }

    public void printHello(String smt) {
        System.out.println("Hello " + smt);
    }
}

 

 三、运行结果:

按F6运行HessianServer。

打开HessianClient中的Main.java按Shift+F6运行,HessianClient的输出如下所示:


Tomcat控制台输入如下所示:


可以看到调用 sayHello方法时,返回一个String到客户端,而printHello方法则直接在服务器端控制台输出。

 

 

Hessian基本Http以二进行方式传输数据,不依赖于特定的Servelt引擎,使用简单,没有复杂的配置,根本不需要什么插件之类的来配合开发。

相当小巧,Hessian4.0.2只有不到340KB,Hessian3只有不到300KB。

 

 

 

 

更多内容可以参考以下:

Java、PHPRPC、Hessian、Burlap、AMF3、XML 序列化的效率对比

 

主题:Hessian 机制剖析

 

  • 大小: 52.4 KB
  • 大小: 122.5 KB
2
1
分享到:
评论

相关推荐

    Flex + Hessian 学习笔记(二)

    Flex和Hessian是一种常见的客户端-服务器通信技术组合,用于构建富互联网应用程序(RIA)。这篇学习笔记将深入探讨这两个技术,并通过实例代码解析它们的工作原理。 Flex是Adobe开发的一个开源框架,主要用于创建...

    WebService另一种轻量级实现—Hessian 学习笔记.rar

    **WebService的轻量级实现——Hessian学习笔记** 在IT行业中,WebService作为一种常见的跨平台、跨语言的通信机制,被广泛应用于系统间的交互。然而,传统的SOAP(Simple Object Access Protocol)协议实现的...

    Hessian的学习笔记

    Hessian学习笔记 Hessian是一种基于Binary-RPC协议实现的远程通讯library,由Caucho提供。下面是Hessian的学习笔记: 一、简介 Hessian是基于Binary-RPC协议实现的远程通讯library,用于实现远程过程调用(RPC)...

    Hessian学习笔记

    在IT领域,Hessian是一种二进制协议,用于远程方法调用(Remote Method Invocation, RMI)和服务调用。它由Caucho Technology开发,旨在提高网络通信的效率,通过减少传输的数据量来提升性能。Hessian协议支持Java、...

    Hessian笔记

    【标题】:“Hessian笔记”主要探讨的是Hessian这一技术在IT领域的应用,尤其是与源码和工具相关的知识。Hessian是一种二进制的Remoting协议,它旨在提供高效的远程方法调用(Remote Method Invocation,RMI)能力,...

    Flex + Hessian 留言本

    Flex + Hessian 学习笔记(一) http://wangcheng.javaeye.com/blog/141382 Flex + Hessian 学习笔记(二) http://wangcheng.javaeye.com/blog/141539 Flex + Hessian 学习笔记(三) ...

    hessian包及一个简单的使用实例

    本文将深入探讨Hessian的核心概念、工作原理,并提供一个简单的使用示例。 ### Hessian核心概念 1. **二进制序列化**:Hessian使用高效的二进制格式进行序列化和反序列化,与XML或JSON相比,这种格式的数据体积更...

    Hessian多个版本打包下载

    Hessian是一种高效的二进制序列化协议,常用于远程过程调用(RPC)和服务之间的通信。这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化...

    Hessian

    Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统之间的通信,通过减少网络传输的...

    基于Hessian矩阵增强的心血管分割_hessian_hessian血管_hessian血管分割_血管分割_Hessian矩阵

    在IT领域,尤其是在医学图像分析中,Hessian矩阵是一个重要的数学工具,用于图像特征检测,特别是在血管分割的应用中。本文将深入探讨标题和描述中提到的"基于Hessian矩阵增强的心血管分割"这一主题。 Hessian矩阵...

    多尺度hessian滤波器图像增强

    在图像处理领域,多尺度Hessian滤波器是一种高级的图像增强技术,它主要用于检测图像中的线性结构,特别是对于微弱或者噪声较大的图像特征有很好的识别能力。这个技术是基于数学形态学的Hessian矩阵理论,由V.S. ...

    闲着没事Hessian开发WebService的总结(一)

    标题中的“闲着没事Hessian开发WebService的总结(一)”表明这是一篇关于使用Hessian框架开发Web服务的文章,作者可能在其中分享了个人的经验和理解。Hessian是一种轻量级的远程调用协议,它允许Java和.NET之间进行...

    hessian案例,hessian案例

    Hessian是一种高效的二进制序列化协议,常用于实现轻量级的远程过程调用(RPC)。这个案例涉及到了Hessian在Java和Python之间的跨语言通信。以下是对Hessian技术及其应用的详细解释: 1. **Hessian简介**:Hessian...

    Hessian应用

    Hessian,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。本文将深入探讨Hessian的...

    dubbo-hessian协议http请求demo(java)

    Hessian是Apache的一个子项目,它是一种二进制的Remoting协议,常用于Java和.NET之间进行远程方法调用(RPC)。本示例将介绍如何在Java中利用Dubbo的Hessian协议进行HTTP请求的实现。 首先,我们需要理解Hessian...

    Hessian协议格式

    一、Hessian 请求报文结构 Hessian 请求报文结构主要由四部分组成:魔数字、消息头、方法名、参数列表。 1. 魔数字:magic number,用于标识 Hessian 协议,固定为 "Hessian" 的 ASCII 码。 2. 消息头:header,...

    hessian

    Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation, RMI)机制。它结合了HTTP协议的可扩展性和Java序列化机制的易用性,使得在...

    springMVC hessian

    在给定的项目中,"springMVC-hessian" 压缩包很可能包含了一个使用 SpringMVC 构建的 Web 服务,以及一个使用 Hessian 实现的远程服务接口。Readme 文件应该提供了详细的步骤指导,解释了如何配置 SpringMVC 以支持 ...

Global site tag (gtag.js) - Google Analytics