android 笔记 ---- 使用Hessian与Java服务端通讯

[size=medium]链接
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/

正文
一、准备
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一样,准备一个接口:

[/size]

public interface BasicAPI {
public String hello();
}


[size=medium]二、服务端
    服务端为Tomcat+Servlet。
    2.1  导入Hessian官方Java的jar包,从http://hessian.caucho.com/下一个导入就行,本文例子是hessian-3.0.20.jar。
    2.2  BasicService.java

[/size]

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

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

public String hello()
{
return _greeting;
}
}


[size=medium]2.3  在web.xml中配置接受servlet,这里写成:[/size]

   <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>



[size=medium]三、客户端

    3.1  新建Android项目,导入hessdroid.jar(别搞混淆了,是自己打包生成的那个jar包)。
    3.2  在界面上添加一个按钮,并添加点击事件:

[/size]

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


[size=medium]结束

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

[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值