码迷,mamicode.com
首页 > 其他好文 > 详细

初识hessian

时间:2015-10-21 00:17:30      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

最近的项目中用到了hessian调用服务,做一下总结。

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

接触到了两种方式实现hessian,纯servlet方式和spring方式。说白了就是需要一个提供service的服务器,还有一个client通过访问service的URL来调用那个service。

创建服务端,首先要导入hessian的jar包,之后就是关键的配置web.xml。

 1     <servlet>
 2         <servlet-name>HessianServlet</servlet-name>
 3         <!-- servlet-class中指定的类是固定的,统一使用 com.caucho.hessian.server.HessianServlet -->
 4         <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
 5         <init-param>
 6             <!-- 服务接口,使用全路径 -->
 7             <param-name>home-api</param-name>
 8             <param-value>cn.com.hwxt.ly.service.i.EfileService</param-value>
 9         </init-param>
10         <init-param>
11             <!-- 服务实现类,使用全路径 -->
12             <param-name>home-class</param-name>
13             <param-value>cn.com.hwxt.ly.service.impl.EfileServiceImpl</param-value>
14         </init-param>
15     </servlet>

接下来写service接口和实现类,直接用一个servlet来继承接口,方便客户端调用,我就简单的写个打印语句表示一下。

public class TestServlet implements TestService{
    public void hello() {
        System.out.println("hello hessian");
    }

服务端就算完成了。

client也是一样,导入jar包,之后就是写一个Test来调用了。

这里的关键点是,要有相同的service接口在,还有相同的package。

 1 public class CallHessianServlet {
 2       //调用hessian自己的servlet的方法
 3       public static void main(String[] args) {
 4          //URL就是服务的地址
 5          String url="http://localhost:8080/项目名/TestServlet";
 6          HessianProxyFactory factory=new HessianProxyFactory();
 7          factory.setOverloadEnabled(true);
 8          try {
 9              TestService remote =(TestService) factory.create(TestService.class, url);
10              System.out.println(remote.hello());
11          } catch (MalformedURLException e) {
12              e.printStackTrace();
13          }
14      }
15  }

client这里其实就是利用HessianProxyFactory调用远程接口,还有反射机制,没有什么难点。就先写这么多吧,spring的hessian还需要学习,有机会再更。

初识hessian

标签:

原文地址:http://www.cnblogs.com/chaoslane/p/4896498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!