• android 通过 Hessian 与 j2ee 服务端交互


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

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

       

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

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

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

    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技术的优劣在心里就能有个底了。

  • 相关阅读:
    面向对象三大特性之封装
    基本数据类型和引用数据类型
    面向对象三大特性之继承
    多表连接查询
    MySQL模糊查询
    MySQL数据查询入门
    Matlab 之 find()函数
    Matlab 之 字符串数组查找
    Matlab 之 数据元素访问
    让WIN10输入法变回传统模式
  • 原文地址:https://www.cnblogs.com/hangxin1940/p/2248640.html
Copyright © 2020-2023  润新知