前言

   随着项目演示版的接近尾声,开始准备Android的方方面面,其中很重要一点就是和服务端通讯,这里试用和评估一下Android平台下的Hessian,虽然非官方版本,但是一直有更新。

链接

  1.  Hessian官方网站:

      说明:Hessian也是一个轻量级的,自定义描述的二进制RPC协议.因为它是一个二进制协议,所以它很适合于发送二进制数据而需要使用其它附件来扩展这个协议。

      地址:http://hessian.caucho.com/

  2.  hessdroid项目:

      说明:hessdroid 是Resin 的Hessian二进制远程调用框架在Android上非官方移植版本。

      地址:http://code.google.com/p/hessdroid/

  3.  Mercurial

      说明:是一个轻量级的分布式版本控制系统,我选的是TortoiseHG for Windows 32bit,这里用于下载hessdroid源代码的工具。

      地址:http://mercurial.selenic.com/downloads/

声明

  欢迎转载,但请保留文章原始出处:)

  农民伯伯: http://over140.blog.51cto.com/

正文

  一、准备

    1.1  下载源码

      下载Mercurial,安装完之后右键TortoiseHg->Clone->Source Path,输入"https://hessdroid.googlecode.com/hg/"下载即可。

    1.2  打包成jar

      源码直接用eclipse导入即可,然后导出成jar即可,这里我导成了hessdroid.jar。懒得自己导的可以从这里下载:http://download.csdn.net/source/2584651。

  二、通讯接口

    和WebService一样,准备一个接口:

public interface BasicAPI{
public Stringhello();
}


  二、服务端

    服务端为Tomcat+Servlet。

    2.1  导入Hessian官方Java的jar包,从http://hessian.caucho.com/下一个导入就行,本文例子是hessian-3.0.20.jar。

    2.2  BasicService.java

public class BasicService extends HessianServlet implements BasicAPI{
private String_greeting = " Hello,world " ;

public void setGreeting(Stringgreeting)
{
_greeting = greeting;
}

public Stringhello()
{
return _greeting;
}
}

    2.3  在web.xml中配置接受servlet,这里写成:

< servlet >
< servlet-name > hello </ servlet-name >
< servlet-class > com.BasicService </ servlet-class >
</ servlet >
< servlet-mapping >
< servlet-name > hello </ servlet-name >
< url-pattern > /hello.do </ url-pattern >
</ servlet-mapping >


  三、客户端

    3.1  新建Android项目,导入hessdroid.jar(别搞混淆了,是自己打包生成的那个jar包)。

    3.2  在界面上添加一个按钮,并添加点击事件:

public void OnClick11(Viewview)
{
Stringurl = " http://192.168.1.1:8080/HessianServer/hello.do " ;
HessianProxyFactoryfactory = new HessianProxyFactory();
try {
factory.setDebug( true );
factory.setReadTimeout( 5000 );
BasicAPIbasic = (BasicAPI)factory.create(BasicAPI. class ,url,getClassLoader());
Toast.makeText( this , " 调用结果: " + basic.hello(),Toast.LENGTH_LONG).show();
} catch (MalformedURLExceptione){
e.printStackTrace();
}
}

    3.3  成功截图:

维护

  2010-11-11

    由jiangcoco分享的经验:连接服务器出现hessianConncectionException错误,模拟器上还好,真机上比较明显,可能是由于网络原因造成,此时应该把超时时间设置稍晚长一些。

结束

   注意官方的测试链接"http://hessian.caucho.com/test/test"是连不通的,一直都是报错找不到hello这个方法,后来改用自己的服务端之后一下子就成功了。好的开始是成功的一半 :) 接下来还会测试传值、大数据量及是否有中文问题等。

更多相关文章

  1. 定制Android版本的chromium之笔记
  2. Android 版本 相关参数修改(SpreadTrum)
  3. Android如何更新app的版本(中级)
  4. 【Android】解决Vivo及5.1低版本 webView适配问题
  5. android目标sdk版本
  6. android studio 项目的版本问题
  7. Android 版本号比较
  8. 关于android UDP 客户端与delphi UDP服务端通讯中文乱码问题
  9. 下载旧版本android sdk tools

随机推荐

  1. Android放大镜的实现
  2. Android中如何判断内存卡是否存在
  3. android里面模拟按Home键的效果
  4. android使用属性动画执行抖动效果
  5. Internal error. Please refer to https:
  6. Android:管理应用内存
  7. android:设计一个能在图片上涂鸦的程序。
  8. Android(安卓)系统CPU,RAM,ROM,SDCard,MA
  9. Understanding Disk Encryption on Andro
  10. Android读取本地TXT文件