Hessian 入门
Hessian是什么
- Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI(Remote Method Invocation)的功能。相比Webservice,Hessian更简单、快捷。采用的是二进制RPC(Remote Procedure Call 远程过程调用:它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议)协议,因为采用的是二进制协议,所以它很适合发送二进制数据。
- Hessian通过Servlet提供远程服务。需要将匹配某个模式的请求映射到Hessian服务。Spring的DispatcherServlet可以完成该功能,DispatcherServlet可将匹配模式的请求转发到Hessian服务。Hessian的server端提供一个servlet基类, 用来处理发送的请求,而Hessian的这个远程过程调用,完全使用动态代理来实现的,,推荐采用面向接口编程,因此,Hessian服务建议通过接口暴露
Hessian处理过程示意图
客户端——>序列化写到输出流——>远程方法(服务器端)——>序列化写到输出流 ——>客户端读取输入流——>输出结果
环境搭建
Hessian的下载和安装请按如下步骤进行:
-
如果项目中使用maven,直接将hessian依赖加入到pom.xml文件
<dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.7</version> </dependency>
-
进入Hessian官网下载Hessian,把Hessian相应的Jar包放到Web应用下,所有的jar文件都应该放在WEB-INF/lib下
使用hessian的两种方式
单独使用hessian(不常用)
这种方式主要是适用于工程中没有适用像spring框架的情况下,好处是配置方便,但是当内容多的情况下,配置的内容很多
-
定义接口
public interface UserService { public String sayHello(String text); public List<User> getUsers(); }
-
接口实现类
public class UserServiceImpl implements UserService { @Override public String sayHello(String text) { return "hello hessian: " + text; } @Override public List<User> getUsers() { List<User> users = new ArrayList<User>(); users.add(new User(1, "zhangshan", "123456")); users.add(new User(2, "lisi", "123456")); users.add(new User(3, "wangwu", "123456")); return users;