首页 > 代码库 > 远程调用——hessian使用入门

远程调用——hessian使用入门

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebServiceHessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。

常见的远程调用的技术:

1webserviceCXFaxissoap 

2httpclient

3hessian---http协议、二进制数据

4dubbo---阿里巴巴

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);

 

远程调用——hessian使用入门