我有一个已部署的Axis2 Web服务,它使用SOAP与客户端通信。现在有一个新的要求是通过发送JSON请求和接收JSON格式的响应来启用REST调用。
遵循这个小教程:http://code.google.com/p/jsonp-support-for-axis2/wiki/OneStopPage
我能够正确配置我的Axis 2 Web服务。使用我的浏览器,我使用以下URL返回一个Student对象:
http://localhost:8181/Axis2Json/services/StudentService/getStudent?response=application/json&value=3
输出:
{"return":{"@type":"ax21:Student","age":25,"firstName":"Mouhammed","lastName":"Soueidane"}}
问题是返回的JSON看起来不像标准的JSON表示(甚至不是badgerfish格式)。因此,例如,如果我想调用一个名为“setStudent”的方法来接收一个Student对象,我真的不知道我需要传递给它的JSON字符串。
我尝试了很多东西,其中大部分导致了投射异常(java.lang.ClassCastException: java.lang.String cannot be cast to org.codehaus.jettison.json.JSONObject)
有没有人知道如何根据客户端的内容类型允许Axis 2 Web服务同时使用SOAP和JSON?