android 通过 Hessian 与 j2ee 服务端交互

最近项目用到,记录一下。

 

    首先,让j2ee那帮兄弟把服务端Hessian实现的接口类以及这个接口类公共方法所传入、返回的那些需要序列化的类给自己,copy也行,打成jar包也行。

   

    接口相关的类的包名和类名也必须得和服务端的相同。

 

    剩下就是客户端加入 hessdroid这个包了,android的一个第三方Hessian库。

 

    调用很简单,下面是示例代码:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
HessianProxyFactory factory=new HessianProxyFactory();
 
//如果需要用户验证的话
//factory.setUser("uname");
//factory.setPassword("xxx");
 
 
factory.setReadTimeout(5000);
 
//这个就是和服务端使用的相同的接口,从j2ee兄弟那靠过来,或者他们给的jar包也行,只要包名类名相同。
XxxxInterfaceService ifs=factory.create(XxxxInterfaceService.class,url,getClass().getClassLoader());
         
 
 
 
//这两个方法是设置使用的hessian协议版本是否为第2版,如果不是的话,就填false   
//factory.setHessian2Reply(false);
//factory.setHessian2Request(false);
 
//现在可以直接调用接口中的方法了,就和本地一样           
Response r=ifs.getSomthing("somthing");

 

 

 

很简单,比webservice方便多了。

 

这里顺便扯一下远程RPC

 

         这年头咱也得敢潮流,只要是个android客户端咱都要说是云端,不是么?

         哪个不是与服务器交互啊,至于怎么交互,我以前是倾向于json的,他比webservice之类的soap强多了,作为云端开发者,你敢让用户那可怜的gprs流量来传输xml这种形式大于实质的数据么?

         首先是webservice在android上面实现很麻烦,ksoap2用起来真的很麻烦,其次呢,谁能在sdk下找到jdk默认javax里的webservice包?谷歌都已经把它扔了,用json代替了。

         Hessian呢,确实是个不错的选择,hessdroid在客户端很好配置,几行代码搞定,传输的也都是序列化过的二进制数据,自己动手抓抓http包,各种远程rpc技术的优劣在心里就能有个底了。

posted on   黑暗伯爵  阅读(1092)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2011年11月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

统计

点击右上角即可分享
微信分享提示