[jira] [Comment Edited] (OFBIZ-5081) when calling service exported by ofbiz, the xml deserialize got error

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Comment Edited] (OFBIZ-5081) when calling service exported by ofbiz, the xml deserialize got error

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-5081?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14721084#comment-14721084 ]

Jacques Le Roux edited comment on OFBIZ-5081 at 8/30/15 8:48 AM:
-----------------------------------------------------------------

That must be because your SOAP xml format is not compliant with one that ofbiz supports.
It seems that "orderId" is being considered as an element here where as it should be the value of an attribute. For example in this case it might be something like :
{code}
<map-Map>
        <map-Entry>
            <map-Key>
                <orderId>123456</orderId>
            </map-Key>
        </map-Entry>
<map-Map>
which is not compliant to what ofbiz supports. It should be something like(assuming orderId is a String) :
<map-Map>
<map-Entry>
            <map-Key>
                <std-String value="orderId"></std-String>
            </map-Key>
            <map-Value>
                <std-String value="123456"></std-String>
            </map-Value>
        </map-Entry>
<map-Map>
{code}


was (Author: ashwaniare):
That must be because your SOAP xml format is not compliant with one that ofbiz supports.
It seems that "orderId" is being considered as an element here where as it should be the value of an attribute. For example in this case it might be something like :
<map-Map>
        <map-Entry>
            <map-Key>
                <orderId>123456</orderId>
            </map-Key>
        </map-Entry>
<map-Map>
which is not compliant to what ofbiz supports. It should be something like(assuming orderId is a String) :
<map-Map>
<map-Entry>
            <map-Key>
                <std-String value="orderId"></std-String>
            </map-Key>
            <map-Value>
                <std-String value="123456"></std-String>
            </map-Value>
        </map-Entry>
<map-Map>

> when calling service exported by ofbiz, the xml deserialize got error
> ---------------------------------------------------------------------
>
>                 Key: OFBIZ-5081
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-5081
>             Project: OFBiz
>          Issue Type: Bug
>          Components: framework
>    Affects Versions: Trunk
>            Reporter: fanse
>
> 1.make the service "getOrderStatus" export = true.
> 2.Calling the service from a client .
> 3.Got error message
> When using debug, find the soap request can be successfully go SOAPEventHandler, the problem is  the XML deserialize method, detail exception trace see below:
> [java] 2012-11-22 10:47:29,449 (http-bio-0.0.0.0-8080-exec-1) [     RequestHandler.java:305:INFO ] This is the first request in this visit. sessionId=9BD4CADAE490AF979FD24F5C33835957.jvm1
>      [java] 2012-11-22 10:47:30,067 (http-bio-0.0.0.0-8080-exec-1) [   SOAPEventHandler.java:214:ERROR]
>      [java] ---- exception report ----------------------------------------------------------
>      [java] Exception: org.ofbiz.entity.serialize.SerializeException
>      [java] Message: Cannot deserialize element named orderId
>      [java] ---- stack trace ---------------------------------------------------------------
>      [java] org.ofbiz.entity.serialize.SerializeException: Cannot deserialize element named orderId
>      [java] org.ofbiz.entity.serialize.XmlSerializer.deserializeCustom(XmlSerializer.java:479)
>      [java] org.ofbiz.entity.serialize.XmlSerializer.deserializeSingle(XmlSerializer.java:461)
>      [java] org.ofbiz.entity.serialize.XmlSerializer.deserialize(XmlSerializer.java:128)
>      [java] org.ofbiz.service.engine.SoapSerializer.deserialize(SoapSerializer.java:45)
>      [java] org.ofbiz.webapp.event.SOAPEventHandler.invoke(SOAPEventHandler.java:177)
>      [java] org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:672)
>      [java] org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:415)
>      [java] org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:214)
>      [java] org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:86)
>      [java] javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
>      [java] javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>      [java] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>      [java] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>      [java] org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:318)
>      [java] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>      [java] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>      [java] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>      [java] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>      [java] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>      [java] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
>      [java] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>      [java] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>      [java] org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>      [java] org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>      [java] org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
>      [java] org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
>      [java] org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
>      [java] java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>      [java] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>      [java] java.lang.Thread.run(Thread.java:662)
>      [java] --------------------------------------------------------------------------------
>      [java] 2012-11-22 10:47:30,067 (http-bio-0.0.0.0-8080-exec-1) [     RequestHandler.java:673:INFO ] Ran Event [soap:#] from [request], result is [null]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)