一、什么是Hessian Hessian 是一个基于 binary-RPC 实现的远程通讯library 。使用二进制传输数据。 Hessian 通常通过Web 应用来提供服务,通过接口暴露。 Servlet 和Spring 的DispatcherServlet 都可以把请求转发给Hessian 服务。 由以下两种方式提供,分别为: com.caucho.hessian.server.HessianServlet org.springframework.web.servlet.DispatcherServlet 二、入门案例 Hessian 的主要功能是完成不同系统之间的数据交互,要完成以上功能就要设计到提供数据的一方和接收数据的一方,那我们将提供数据的一方称为服务端,获取数据的一方称为客户端。具体服务端和客户端的具体编写如下: 服务端 第一步:创建一个web 项目,并导入hessian 的jar 包: hessian-4.0.33.jar 第二步:创建一个接口 [Java] 纯文本查看 复制代码 ? 1 2 3 4 public interface HelloService { public String sayHello(String name); public List<User> findAllUser(); } 第三步:提供上面接口的实现类 [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 public class HelloServiceImpl implements HelloService{ public String sayHello(String name) { System.out.println( "sayHello方法被调用了" ); return "hello " + name; } public List<User> findAllUser() { List<User> list = new ArrayList<User>(); list.add( new User( 1 , "小王" )); list.add( new User( 2 , "小白" )); return list; } } 第四步:在web.xml 中配置服务 [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 < servlet > < servlet-name >hessian</ servlet-name > < servlet-class >com.caucho.hessian.server.HessianServlet</ servlet-class > < init-param > < param-name >home-class</ param-name > < param-value >cn.itcast.service.HelloServiceImpl</ param-value > </ init-param > < init-param > < param-name >home-api</ param-name > < param-value >cn.itcast.service.HelloService</ param-value > </ init-param > </ servlet > < servlet-mapping > < servlet-name >hessian</ servlet-name > < url-pattern >/hessian</ url-pattern > </ servlet-mapping > 第五步: 启动服务器,进行访问 http://ip:port/项目名/hessian 客户端 第一步:创建一个客户端项目,并导入hessian 的jar 包 第二步:创建一个接口(和服务端接口对应) [Java] 纯文本查看 复制代码 ? 1 2 3 4 public interface HelloService { public String sayHello(String name); public Object findAllUser(); } 第三步:使用hessian 提供的方式创建代理对象调用服务 [Java] 纯文本查看 复制代码 ? 1 2 3 4 5 6 7 HessianProxyFactory factory = new HessianProxyFactory(); String url = “http: //ip:port/项目名/hessian”; HelloService proxy = (HelloService) factory.create(HelloService. class , url); String ret = proxy.sayHello( "test" ); System.out.println(ret); Object users = proxy.findAllUser(); System.out.println(users);