Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
常见的远程调用的技术:
1、webservice(CXF、axis)soap
2、httpclient
3、hessian---http协议、二进制数据
4、dubbo---阿里巴巴
hessian有两种发布服务的方式:
1、使用hessian框架自己提供的Servlet发布
2、和spring整合发布服务
一、什么是Hessian
Hessian 是一个基于 binary-RPC 实现的远程通讯 library。使用二进制传输数据。
Hessian通常通过Web应用来提供服务,通过接口暴露。
Servlet和Spring的DispatcherServlet都可以把请求转发给Hessian服务。
由以下两种方式提供,分别为:
com.caucho.hessian.server.HessianServlet、org.springframework.web.servlet.DispatcherServlet。
二、入门案例
2.1 服务端开发:
第一步:创建一个web项目,并导入hessian的jar包
第二步:创建一个接口
public interface HelloService { public String sayHello(String name); public List<User> findAllUser(); }
第三步:提供上面接口的实现类
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中配置服务
<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.zang.service.HelloServiceImpl</param-value> </init-param> <init-param> <param-name>home-api</param-name> <param-value>cn.zang.service.HelloService</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>hessian</servlet-name> <url-pattern>/hessian</url-pattern> </servlet-mapping>
wsimport
wsdl2java
2.2 客户端开发:
第一步:创建一个客户端项目,并导入hessian的jar包
第二步:创建一个接口(和服务端接口对应)
public interface HelloService { public String sayHello(String name); public Object findAllUser(); }
第三步:使用hessian提供的方式创建代理对象调用服务
HessianProxyFactory factory = new HessianProxyFactory(); HelloService proxy = (HelloService) factory.create(HelloService.class, "http://localhost:8089/hessian_server/hessian"); String ret = proxy.sayHello("test"); System.out.println(ret); Object users = proxy.findAllUser(); System.out.println(users);