正文
一、准备
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
String hello();
}
二、服务端
服务端为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(String greeting)
{
_greeting
=
greeting;
}
public
String hello()
{
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(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();
}
}
3.3 成功截图:
维护
2010-11-11
由jiangcoco分享的经验:连接服务器出现hessianConncectionException错误,模拟器上还好,真机上比较明显,可能是由于网络原因造成,此时应该把超时时间设置稍晚长一些。
结束
注意官方的测试链接"http://hessian.caucho.com/test/test"是连不通的,一直都是报错找不到hello这个方法,后来改用自己的服务端之后一下子就成功了。好的开始是成功的一半 :) 接下来还会测试传值、大数据量及是否有中文问题等。
本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582249,如需转载请自行联系原作者