java - 如何从soap web服务接收JSONObject作为响应而不是android中的字符串

标签 java web-services ksoap2

我有一个发送 JSONObject 作为响应的 Web 服务,但在 Android 中,如果我收到 json 对象响应,则会发生异常:

Oct 12, 2012 7:36:16 AM org.apache.axis.Message writeTo
SEVERE: java.io.IOException:
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.io.IOException: No serializer found for class org.json.JSONObject in registry org.apache.axis.encoding.TypeMappingDelegate@7275f5b7
 faultActor: 
 faultNode: 
 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:java.io.IOException: No serializer found for class org.json.JSONObject in registry org.apache.axis.encoding.TypeMappingDelegate@7275f5b7
    at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507)
    at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
    at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:801)
    at org.apache.axis.message.RPCParam.serialize(RPCParam.java:208)
    at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:433)
    at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
    at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)
    at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478)
    at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
    at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)
    at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
    at org.apache.axis.Message.writeTo(Message.java:539)
    at org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:902)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:777)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

    {http://xml.apache.org/axis/}hostname:Kanmani-PC

java.io.IOException: No serializer found for class org.json.JSONObject in registry org.apache.axis.encoding.TypeMappingDelegate@7275f5b7
    at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
    at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:317)
    at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269)
    at org.apache.axis.Message.writeTo(Message.java:539)
    at org.apache.axis.transport.http.AxisServlet.sendResponse(AxisServlet.java:902)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:777)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: No serializer found for class org.json.JSONObject in registry org.apache.axis.encoding.TypeMappingDelegate@7275f5b7
    at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507)
    at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
    at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:801)
    at org.apache.axis.message.RPCParam.serialize(RPCParam.java:208)
    at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:433)
    at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
    at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:139)
    at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478)
    at org.apache.axis.message.MessageElement.output(MessageElement.java:1208)
    at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315)
    ... 19 more

谁能帮我知道是否可以在 Web 服务和 Android 客户端之间发送和接收 JSONObject,而无需将 JSONObject 转换为字符串?

最佳答案

Can anyone help me know whether a JSONObject can be sent and received between web service and android client without the JSONObject being converted to a string ?

不,不能。如果它不是作为字符串发送,则它不是 JSON。 (不包括通信中使用的任何压缩或加密)。

关于java - 如何从soap web服务接收JSONObject作为响应而不是android中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851473/

相关文章:

android - 主机名未经过验证 ANDROID

java - 优化应用程序服务器静态内容的吞吐量

web-services - Tomcat 没有启动我的网络服务

winforms - 创建程序 Ala IRC 客户端、FICS 客户端

c# - 从 DTO 创建 BO 的模式/策略

android - 在 android 应用程序中使用 .net 服务?

java - 寻找 StringBuilder 的高性能替代品

java - 在调用父类(super class)构造函数方法之前检查子类中的条件

java - 如何让我的应用程序出现在第二台显示器的中央,而不是主显示器的中央?

java - Android:NTLM 身份验证、ksoap 和持久连接