因为工作原因,最近对axis2框架进行一些的研究。因此对框架使用中的一些问题进行记录,方便以后回顾。
系统环境
window7
axis2 1.7.8 / 1.7.4
jdk 1.8
gson 2.8.2
maven 3.5.0
通过官网介绍,axis2原生支持json的方式有两种
一种是基于XML Stream API(这种不符合需求,就没有多做了解)
一种是使用纯json格式,请求与响应都是json格式,也是此次学习的目标。
首先需要在axis2.xml配置
<messageBuilder contentType="application/json" class="org.apache.axis2.json.gson.JsonBuilder" /> <messageFormatter contentType="application/json" class="org.apache.axis2.json.gson.JsonFormatter" />
然后在services.xml配置
<messageReceivers> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="org.apache.axis2.json.gson.rpc.JsonRpcMessageReceiver"/> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" class="org.apache.axis2.json.gson.rpc.JsonInOnlyRPCMessageReceiver"/> </messageReceivers>
启动项目,按照官方案例进行测试,会发现gson格式化出错。
java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 14
测试请求数据
{"echoUser":{"user":{"name":"My_Name"