为了账号安全,请及时绑定邮箱和手机立即绑定

Hessian服务器 -基于二进制的服务器简单demo

标签:
Android

Android Bus 第二篇帖子 :

      那么我觉得Hessian 数据传输机制,如果能够有一个重大的改进,比如说数据的传输格式多样性的话,针对JSON,XML ,明确一点,那么可以和WebService 有得比较,当然是我希望的

对于java Web这一个板块差不多1年没有做个这个方面的项目了,很多东西都忘记了,如果现在让我纯手写三大框架结合Hessian这个难度还是有很大的。但是最近android 端的项目需要用到服务器端的内容(非企业级项目),所以有开始从新写这个服务器端的项目,在查找资料的时候发现网上这部分内容很少,连源代码都没有什么,当然现在我写好了,就提供给需要的人,题外话:可能是因为我们百度公司太强大了,世界一流的搜索引擎。okay ,正题 简单介绍一下

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

官方网站提供:Java、Flash/Flex、Python、C++、.NET C#等实现。Hessian和Axis、XFire都能实现web service方式的远程方法调用,区别是Hessian是二进制协议,Axis、XFire则是SOAP协议,所以从性能上说Hessian远优于后两者,并且Hessian的JAVA使用方法非常简单。Hessian由于没有WSDL这种服务描述文件去对实现进行规定,似乎更适合内部分布式系统之间的交互,对外提供服务还是使用后两者更体面些。

那么简单就介绍到这里:两个关键词,轻量级,服务器端,Hessian 。

客户端测试结果以及服务器目录结构  如下(里面写了三个同hessian项目)

一  : Hessian服务器端搭建步骤:

1、导入Hessian的Jar包
2、设计接口
3、实现接口:必须继承HessianServlet,接口参数对象必须实现序列化
4、配置web.xml

因为会贴出源码:所以下面贴出部分介绍web.xml

1).web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <servlet>
  <servlet-name>an</servlet-name>
  <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
  <init-param>
   <param-name>home-class</param-name>
   <param-value>com.an.server.impl.HelloWorld</param-value>
  </init-param>
  <init-param>
   <param-name>home-api</param-name>
   <param-value>com.an.server.IHelloWorld</param-value>
  </init-param>

  <init-param>
   <param-name>home-class</param-name>
   <param-value>com.an.server.impl.BasicService</param-value>
  </init-param>
  <init-param>
   <param-name>home-api</param-name>
   <param-value>com.an.server.BasicAPI</param-value>
  </init-param>

  <init-param>
   <param-name>home-class</param-name>
   <param-value>com.an.server.impl.PhoneService</param-value>
  </init-param>
  <init-param>
   <param-name>home-api</param-name>
   <param-value>com.an.server.IphoneService</param-value>
  </init-param>
 </servlet>

 <servlet-mapping>
  <servlet-name>an</servlet-name>
  <url-pattern>/hessian/an</url-pattern>
 </servlet-mapping>
</web-app>

二: hessian客户端使用

1、导入Hessian的Jar包
2、导入服务端接口原型Jar包
3、获得服务端接口:

因为提供源码,这题显示部分接口调用代码

 HessianProxyFactory hessianProxy = new HessianProxyFactory();
   hessianProxy.setReadTimeout(TIME_OUT);
   hessianProxy.setHessian2Reply(false); // Hessian协议的版本,false=第一版 true
   hessianProxy.setHessian2Request(false);
   this.service = (IHelloWorld) hessianProxy.create(IHelloWorld.class,
     SERVICE_URL);

三,注意事项

1.android 项目需要上网权限;

2.服务器必须先启动后才能访问;

3.web.xml配置文件必须规范;

四, 为什么我找不到上传源码的地方呢?好像等级限制,先在下面附上下载链接

下载地址一 :    (基于Myeclipse的开发环境)http://www.staryumou.icoc.cc/col.jsp?id=103   

下载地址二 :  (基于eclipse ee的环境) 等待上传链接: h链接链接: http://pan.baidu.com/s/1eQ4Pfvs

原文链接:http://www.apkbus.com/blog-671730-59438.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消