It looks like Axis isn't sending a message that conforms to it's own schema:


<schema elementFormDefault="qualified"

With it "qualified", the child elements need to be namespace qualified, but 
from the error, it looks like axis is sending it unqualified.   You could try 
changing the wsdl to make the above "unqualified" or change:

 <element name="name" nillable="true" type="xsd:string"/>

to:
 <element name="name" nillable="true" elementForm="unqualified" 
type="xsd:string"/>


Dan





On Sunday, June 12, 2011 8:49:15 PM Damon wrote:
> Hi all,
>     I was trying to consume webservices from Axis1.4. Returned object is a
> bean which contain a simple String array. This webservice was consumed
> perfectly by Axis client. but threw exception when use CXF client(Generated
> by wsdl2java.bat). I worked on this for a whole day, and couldn't find any
> clue. Can anybody help me out?? Below is the exception and WSDL file:
>    org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element
> (uri:"", local:"name"). Expected elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray> at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:7
> 91) at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:6
> 32) at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:154)
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteral
> InInterceptor.java:201) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> n.java:263) at
> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:736) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons
> eInternal(HTTPConduit.java:1563) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons
> e(HTTPConduit.java:1448) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCon
> duit.java:1356) at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:614) at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInte
> rceptor.handleMessage(MessageSenderInterceptor.java:62) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> n.java:263) at
> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:484) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:414) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:317) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:269) at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at
> $Proxy23.getArrayBean(Unknown Source)
>     at
> cxf.client.helloarray.HelloWorldArray_GetArray_Client.main(HelloWorldArray_
> GetArray_Client.java:50) Caused by: javax.xml.bind.UnmarshalException
>  - with linked exception:
> [javax.xml.bind.UnmarshalException: unexpected element (uri:"",
> local:"name"). Expected elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray>] at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamExcep
> tion(UnmarshallerImpl.java:425) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unmars
> hallerImpl.java:362) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unmarsh
> allerImpl.java:339) at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:7
> 68) ... 20 more
> Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"",
> local:"name"). Expected elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(U
> nmarshallingContext.java:642) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254
> ) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249
> ) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElemen
> t(Loader.java:116) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:10
> 1) at
> com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(Struc
> tureLoader.java:243) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement
> (UnmarshallingContext.java:478) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(
> UnmarshallingContext.java:459) at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartEle
> ment(StAXStreamConnector.java:242) at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStr
> eamConnector.java:176) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unmars
> hallerImpl.java:360) ... 22 more
> Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"",
> local:"name"). Expected elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray> ... 33 more
> Exception in thread "main" javax.xml.ws.soap.SOAPFaultException:
> Unmarshalling Error: unexpected element (uri:"", local:"name"). Expected
> elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146) at
> $Proxy23.getArrayBean(Unknown Source)
>     at
> cxf.client.helloarray.HelloWorldArray_GetArray_Client.main(HelloWorldArray_
> GetArray_Client.java:50) Caused by: javax.xml.bind.UnmarshalException
>  - with linked exception:
> [javax.xml.bind.UnmarshalException: unexpected element (uri:"",
> local:"name"). Expected elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray>] at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamExcep
> tion(UnmarshallerImpl.java:425) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unmars
> hallerImpl.java:362) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unmarsh
> allerImpl.java:339) at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:7
> 68) at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:6
> 32) at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:154)
> at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteral
> InInterceptor.java:201) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> n.java:263) at
> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:736) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons
> eInternal(HTTPConduit.java:1563) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons
> e(HTTPConduit.java:1448) at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCon
> duit.java:1356) at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:614) at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInte
> rceptor.handleMessage(MessageSenderInterceptor.java:62) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
> n.java:263) at
> org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:484) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:414) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:317) at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:269) at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) ...
> 2 more
> Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"",
> local:"name"). Expected elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray> at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(U
> nmarshallingContext.java:642) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254
> ) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249
> ) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElemen
> t(Loader.java:116) at
> com.sun.xml.bind.v2.runtime.unmarshaller.Loader.childElement(Loader.java:10
> 1) at
> com.sun.xml.bind.v2.runtime.unmarshaller.StructureLoader.childElement(Struc
> tureLoader.java:243) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement
> (UnmarshallingContext.java:478) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(
> UnmarshallingContext.java:459) at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartEle
> ment(StAXStreamConnector.java:242) at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStr
> eamConnector.java:176) at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unmars
> hallerImpl.java:360) ... 22 more
> Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"",
> local:"name"). Expected elements are
> <{http://localhost:8080/AxisTest/services/GetArray}name>,<{http://localhost
> :8080/AxisTest/services/GetArray}strArray> ... 33 more
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
> targetNamespace="http://localhost:8080/AxisTest/services/GetArray";
> xmlns:apachesoap="http://xml.apache.org/xml-soap";
> xmlns:impl="http://localhost:8080/AxisTest/services/GetArray";
> xmlns:intf="http://localhost:8080/AxisTest/services/GetArray";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";> <!--WSDL created by Apache
> Axis version: 1.4
> Built on Apr 22, 2006 (06:55:48 PDT)-->
>  <wsdl:types>
>   <schema elementFormDefault="qualified"
> targetNamespace="http://localhost:8080/AxisTest/services/GetArray";
> xmlns="http://www.w3.org/2001/XMLSchema";> <complexType
> name="ArrayOf_xsd_string">
>     <sequence>
>      <element maxOccurs="unbounded" minOccurs="0" name="item"
> type="xsd:string"/> </sequence>
>    </complexType>
>    <complexType name="ArrayBean">
>     <sequence>
>      <element name="name" nillable="true" type="xsd:string"/>
>      <element name="strArray" nillable="true"
> type="impl:ArrayOf_xsd_string"/> </sequence>
>    </complexType>
>    <element name="getArrayBeanReturn" type="impl:ArrayBean"/>
>   </schema>
>  </wsdl:types>
> 
>    <wsdl:message name="getArrayBeanResponse">
> 
>       <wsdl:part element="impl:getArrayBeanReturn"
> name="getArrayBeanReturn"/>
> 
>    </wsdl:message>
> 
>    <wsdl:message name="getArrayBeanRequest">
> 
>    </wsdl:message>
> 
>    <wsdl:portType name="HelloWorldArray">
> 
>       <wsdl:operation name="getArrayBean">
> 
>          <wsdl:input message="impl:getArrayBeanRequest"
> name="getArrayBeanRequest"/>
> 
>          <wsdl:output message="impl:getArrayBeanResponse"
> name="getArrayBeanResponse"/>
> 
>       </wsdl:operation>
> 
>    </wsdl:portType>
> 
>    <wsdl:binding name="GetArraySoapBinding" type="impl:HelloWorldArray">
> 
>       <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> 
>       <wsdl:operation name="getArrayBean">
> 
>          <wsdlsoap:operation soapAction=""/>
> 
>          <wsdl:input name="getArrayBeanRequest">
> 
>             <wsdlsoap:body use="literal"/>
> 
>          </wsdl:input>
> 
>          <wsdl:output name="getArrayBeanResponse">
> 
>             <wsdlsoap:body use="literal"/>
> 
>          </wsdl:output>
> 
>       </wsdl:operation>
> 
>    </wsdl:binding>
> 
>    <wsdl:service name="HelloWorldArrayService">
> 
>       <wsdl:port binding="impl:GetArraySoapBinding" name="GetArray">
> 
>          <wsdlsoap:address
> location="http://localhost:8080/AxisTest/services/GetArray"/>
> 
>       </wsdl:port>
> 
>    </wsdl:service>
> 
> </wsdl:definitions>
-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog
Talend - http://www.talend.com

Reply via email to