Axis2与Android的Json(Gson)通信传数据

方案一:让axis2自己返回json格式

1:下载Axis2的war包,并且安装在你的Servlet容器中(tomcat放在webapps目录下) 

下载地址:http://axis.apache.org/axis2/java/core/download.cgi

 

2:下载DynamicResponseHandler(wso2dynamic-response-1.5.mar)模块,复制到webservice项目中的WEB-INF/modules中,记住要把wso2dynamic-response-1.5.mar加到modules.list中 

下载地址:http://dist.wso2.org/maven2/org/wso2/dynamicresponse/wso2dynamic-response/1.5/

 

3:下载Jettison,放入WEB-INF/lib中的模块,以及下载Jettison1.2补丁jettison-1.2-patched.jar,放入WEB-INF/lib中的模块,一定要jettison-1.2-patched.jar,如果有jettison-1.0-RC2.jar或老版本要移除,否则用的是老版本 

下载地址:http://jettison.codehaus.org/Download 

下载地址:http://www.marcusschiesser.de/wp-content/uploads/2009/01/jettison-1.2-patch.zip.zip 

或者http://idoveu.iteye.com/blog/1575849中的附件

 

4:将axis2.xml(定位在WEB-INF/conf)配置文件中的添加

 

5:在axis2.xml添加JSON消息格式,一定要是标签里,原来有这个标签的则在原来的标签里加,如果原来没有这个标签则才新加:

 

 

 

6:在axis2.xml添加JSON消息编译,一定要是标签里,原来有这个标签的则在原来的标签里加,如果原来没有这个标签则才新加:

 

 

 

7:启动你的服务容器,并且通过url测试,例如:

http://localhost:8080/axis2/services/Version/getVersion?response=application/json

返回的值为:{"return":"Hi - the Axis2version is 1.6.2"}

 

方案二:传值为json

      通过上面的例子如果是用pojo传过来的是一个类,那里面的格式如下:
{"return":{"@type":"ax24:IdentityBean","result":false,"userId":"030"}}

这并不是一个标准的json,所有采取的方法只有在传的时候直接打成json来传.

服务器转换代码:

Useruser

Gson gson = new Gson();

String str = gson.toJson(user);

直接返回的是String个客户端,客户端请求数据如下:

{"userId":"030","result":false,"list":[{"id":0,"name":"John0","email":"Email0","address":"Address0"},{"id":1,"name":"John1","email":"Email1","address":"Address1"},{"id":2,"name":"John2","email":"Email2","address":"Address2"}]}

可以看出中间的数据都是Json,然后在客户端再转一次:

Gson gson = new Gson();

User userInfo = (User) GsonUtils.Decryption(json,User.class);

这样就能实现json的传输,并且还可以在中间采用加密,实现保密传输。

 

 

   

更多相关文章

  1. android中tabhost的使用
  2. 银联手机支付 手机客户端有几个?
  3. Android(安卓)Socket网络通信
  4. 学习笔记 Android(安卓)使用AIDL实现进程间通信
  5. Android(安卓)快速使用 string.xml 中的array标签
  6. Android(安卓)图片左上角、右上角标签tag
  7. Android的setTag
  8. android实现 服务器功能
  9. Android入门三 Http通信(实例)

随机推荐

  1. Android tab 背景及字体颜色设置
  2. Android使用Unicode码对中文进行字母索引
  3. Android两种播放声音的方式
  4. Android apk重新签名
  5. android network develop(2)----network
  6. Canvas.clipPath不能用
  7. 在Android中使用NDK调用OpenGl
  8. Android 解析CSV文件,中文乱码
  9. Android 反射调用类
  10. android颜色值