[mule-user] [axis] invoke web service with complex type return value

118 views
Skip to first unread message

h y

unread,
Jun 21, 2010, 11:36:53 PM6/21/10
to us...@mule.codehaus.org

i have a ws "http://192.168.0.6:8080/pro/services/DictService?wsdl", it return a complexType value(DictExplain) , it contains some elements

wsdl:

<wsdl:types>

<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://domain.ws.pro.com/xsd">


<xs:complexType name="{color:#ff00ff}DictExplain{color}">


<xs:sequence>

{color:#ff00ff}<xs:element minOccurs="0" name="zdca01a040" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="zdca01a060" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="zdca01a110" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="zdca01a120" nillable="true" type="xs:string" />{color}
</xs:sequence>
</xs:complexType>
</xs:schema>

<xs:schema xmlns:ax22="http://domain.ws.pro.com/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.ws.pro.com">

<xs:import namespace="http://domain.ws.pro.com/xsd" />

<xs:complexType name="Exception">


<xs:sequence>

<xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType" />
</xs:sequence>
</xs:complexType>

<xs:element name="Exception">


<xs:complexType>


<xs:sequence>

<xs:element minOccurs="0" name="Exception" nillable="true" type="ns:Exception" />
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="getDictExplainListResponse">


<xs:complexType>


<xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="ax22:DictExplain" />
</xs:sequence>
...

-----

my mule config :

{color:#0000ff}<outbound>
<pass-through-router>
<axis:outbound-endpoint address="http://192.168.0.6:8080/pro/services/DictService?method=getDictExplainList" style="DOCUMENT" use="LITERAL">
&lt;axis:soap-method method="qname{getDictExplainList:</font>[http://service.ws.pro.com|http://service.ws.pro.com/]<font color="#0000ff">}"&gt;
&lt;axis:soap-return type="qname{{color:#ff00ff}DictExplain{color}:{color}[{color:#0000ff}http://domain.ws.pro.com/xsd{color}|http://domain.ws.pro.com/xsd]{color:#0000ff}}"/&gt;
&lt;/axis:soap-method&gt;
&lt;/axis:outbound-endpoint&gt;
&lt;/pass-through-router&gt;
&lt;/outbound&gt;{color}

-----
now , has some exceptions


org.xml.sax.SAXException: {color:#ff0000}Invalid element in com.pro.ws.domain.DictExplain - return
{color}at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:258)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)

anybody give a idea, thanks

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


h y

unread,
Jun 22, 2010, 3:43:44 AM6/22/10
to us...@mule.codehaus.org
now , i serialize the "DictExplain" and copy to Mule Project. i get a new exception

Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Marshalling Error: {color:#ff0000}class org.mule.transport.http.ReleasingInputStream nor any of its super class is known to this context{color}.
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:160)
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169)
at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:105)
at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:302)
at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:266)
at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:834)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: javax.xml.bind.MarshalException
- with linked exception:
--javax.xml.bind.JAXBException: class org.mule.transport.http.ReleasingInputStream nor any of its super class is known to this context.--
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:318)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244)
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:445)
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:139)
... 21 more
Caused by: javax.xml.bind.JAXBException: class org.mule.transport.http.ReleasingInputStream nor any of its super class is known to this context.
at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:246)
at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:261)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:653)
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:699)
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:699)
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:152)
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:189)
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:315)
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:322)
at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:72)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315)
... 25 more
Caused by: javax.xml.bind.JAXBException: class org.mule.transport.http.ReleasingInputStream nor any of its super class is known to this context.
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:590)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:648)
... 38 more
2010-6-22 14:26:20 org.mortbay.log.Slf4jLog info


if i cast payload to DictExplain :

Object obj = message.getPayload(DictExplain.class).

i get a exception

{color:#ff0000}Could not find a transformer to transform "org.mule.transport.http.ReleasingInputStream" to "com.sanxia.soa.domain.TestComplex".

{color}

Paul Borlin

unread,
Nov 21, 2011, 8:19:47 AM11/21/11
to us...@mule.codehaus.org
I had this issue recently. What it boiled down to was that the payload given did not have a matching parameter value on the web service. In my case, a HashMap was in the payload, but all the method parameters on the web service were String. Hope this helps.
Reply all
Reply to author
Forward
0 new messages