[hessdroid]Android下使用Hessian与Java服务端通讯
前言
随着项目演示版的接近尾声,开始准备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这个方法,后来改用自己的服务端之后一下子就成功了。好的开始是成功的一半 :) 接下来还会测试传值、大数据量及是否有中文问题等。
更多相关文章
- React Native 中Android实现ImagePicker
- Android:带你玩转Servie,子线程,与UI线程通信[导入导出]
- Android中 Error generating final archive问题
- Android如何更新app的版本(中级)
- 大话企业级Android应用开发实战 文件下载
- android 在线升级借助开源中国App源码
- android 开发书籍打包下载(包含十几本Android开发书籍)
- Ubuntu下建立Android开发环境
- Android(安卓)开发环境 adt-bundle android-studio sdk adt 下载