Hessian 简介
说到 web service,首先想到的便是SOAP,对于很多人来说,SOAP基本上就等同于 Web service了。其实,Web service 是一种概念,SOAP 则是这种概念的一种实现而已,除此之外,还有其他针对 Web service 的实现,Hessian 就是其中的一个。
Hessian 与 web service 常用的 SOAP 协议类似,将协议报文封装在HTTP封包中,通过HTTP信道进行传输的。不同的是,Hessian 使用的是二进制协议,而不是像 SOAP 那样使用 XML,使用 Hessian 传输数据量比 SOAP 协议要小很多。Hessian 是一个轻量级的 Web service 实现框架,使用起来也非常简单,只需要将 Hessian 的 jar 包即可编写服务端和客户端的程序,不需要其他附加包。由于其轻量,因此还可以用来编写手机上的应用程序。
1、接口 - Web 服务协议
通常,需要根据应用程序的业务逻辑为 Web service 和其客户端程序交互定义一个协议来描述 Web service 所能提供的服务,在程序实现上,就表现为编写一个接口。Web service 程序实现该接口,客户端按照该接口定义的方法进行业务操作。
package example;
public interface Basic {
public String hello();
}
2、Web 服务程序
位于服务器端的 Web 服务程序需要实现为业务逻辑定义的接口。
package example;
public class BasicService implements Basic {
public String hello(String name)
{
return "Hello, " + name;
}
}
3、Web 服务器配置
Hessian 通过在 Web 服务器上配置 HessianServlet 这个 Servlet 来提供 Web service。为 HessianServlet 指定不同的 init-param 来使 HessianServlet 提供不同的 Web service 服务。
hello
com.caucho.hessian.server.HessianServlet
home-class
example.BasicService
home-api
example.Basic
/hello
hello
其中,home-class 指示实现接口的类名称,home-api 指示描述 Web service 的接口名称。
4、客户端程序
在 Java 客户端使用 Hessian service 就像调用一个普通的 Java 方法那样简单。通过指定目标 web service 的 URL 和描述 Web service 的接口,HessianProxyFactory 将创建一个实现了该接口的对象,然后就可以像使用本地对象那样使用该对象了。
package example;
import com.caucho.hessian.client.HessianProxyFactory;
public class BasicClient {
public static void main(String []args)
throws Exception
{
String url = "
http://127.0.0.1:8080/htest/hello
";
HessianProxyFactory factory = new HessianProxyFactory();
Basic basic = (Basic) factory.create(Basic.class, url);
System.out.println(basic.hello("hessian"));
}
}
5、参考
http://hessian.caucho.com/
本文来自ChinaUnix博客,如果查看原文请点: http://blog.chinaunix.net/u2/67646/showart_1934588.html