Hessian简单入门

Hessian是一个简单的连接Web服务的二进制协议。

       Hessian概述:

一.客户端和服务端不依赖于其他任何jar,比起webService 它显得轻量许多,比如使用xfire包含核心库和客户端的jar,大小达到了10M ,而最新的hessian-4.0.7  jar大小也只有不到400K.

      二.更适合二进制的传输,比起webService.Hessian的 传输速度要高于webService.

      三.支持Java,c#,Flex(actionscrpit)

 

一.  添加Hessian的jar于Web-Inf下.  这里使用的是hessian-4.0.7,下载地址: http://download.csdn.net/source/3159260

二.  定制供客户端调用的接口:

  1. package com.wtang.isay;  
  2.   
  3. public interface Isay {  
  4.     public String sayHello(String arg1,String arg2);  
  5. }  

 

三.  接口具体实现(如果使用了pojo类,pojo类必须实现序列化)

  1. package com.wtang.isay;  
  2.   
  3. public class IsayImpl implements Isay {  
  4.   
  5.     public String sayHello(String arg1, String arg2) {  
  6.         return “Hello:” + arg1 + arg2;  
  7.     }  
  8. }  

 

四.  配置Hessian的Servlet[类似于配置webService的service.xml]

 

  1. <servlet>  
  2.     <servlet-name>hello</servlet-name>  
  3.     <!– 配置Hessian的Servlet –>  
  4.     <servletclass>com.caucho.hessian.server.HessianServlet</servlet-class>  
  5.     <init-param>  
  6.         <param-name>service-class</param-name>  
  7.         <param-value>com.wtang.isay.IsayImpl</param-value>  
  8.     </init-param>  
  9. </servlet>  
  10.   
  11. <servlet-mapping>  
  12.     <servlet-name>hello</servlet-name>  
  13.     <url-pattern>/hello</url-pattern>  
  14. </servlet-mapping>  

 

 

 

五.  书写服务端的测试jsp页面[HessianProxyFactory类似于xifre的XFireProxyFactory]  

 

  1. <%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%>  
  2. <%@ page import=”com.caucho.hessian.client.HessianProxyFactory”%>  
  3. <%@ page import=”com.wtang.isay.Isay”%>  
  4.   
  5. <%  
  6.     //Hessian代理工厂   
  7.     HessianProxyFactory factory = new HessianProxyFactory();  
  8.     //获得访问配置的Servlet路径   
  9.     String url=(“http://”+request.getServerName()+”:”+request.getServerPort()  
  10.     +request.getContextPath()+”/hello”);  
  11.       
  12.     System.out.println(url);  
  13.       
  14.     //使用Hessian工厂获得接口的具体实现类   
  15.     Isay i = (Isay)factory.create(Isay.class,url);  
  16.       
  17.     out.println(“<h2>”+i.sayHello(“chen”,”weitang”)+”<h2>”);  
  18. %>  

 

输出Hello:cheweitang

发表评论

邮箱地址不会被公开。 必填项已用*标注

昵称 *