Hessian学习笔记(一) Hello Hessian

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

       Hessian概述:

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

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

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

 

一.  添加HessianjarWeb-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. }  

 

.  配置HessianServlet[类似于配置webServiceservice.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类似于xifreXFireProxyFactory]  

 

  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

 

 

.客户端调用:

 

 

  1. package com.wtang.test;  
  2.   
  3. import java.net.MalformedURLException;  
  4.   
  5. import com.caucho.hessian.client.HessianProxyFactory;  
  6. import com.wtang.isay.Isay;  
  7.   
  8. public class Test {  
  9.     public static void main(String[] args) throws MalformedURLException {  
  10.         // Hessian代理工厂  
  11.         HessianProxyFactory factory = new HessianProxyFactory();  
  12.         // 访问配置的Servlet路径  
  13.         String url = "http://localhost:8080/HessianFirst/hello";  
  14.   
  15.         // 使用Hessian工厂获得接口的具体实现类  
  16.         Isay i = (Isay) factory.create(Isay.class, url);  
  17.   
  18.         System.out.println(i.sayHello("chen", "weitang"));  
  19.     }  
  20. }  

 

 

输出Hello:chenweitang

 

  

相比起webService 是不是轻量级许多呢?

你可能感兴趣的:(hessian)