cancel
Showing results for 
Search instead for 
Did you mean: 

XML Deserialization Error

Former Member
0 Kudos

Hi,

Iam trying to consume webservices which is not developed and deployed in WAS>

The reponse is erroring out with :

Service call exception; nested exception is: com.sap.engine.services.webservices.jaxrpc.exceptions.XmlUnmarshalException: XML Deserialization Error. XML is not valid. Node <IviewWorkOrders> child of <soapenv:Body> not described in Schema.

The wsdl i used:

<wsdl:definitions

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

targetNamespace = "http://www.mesasolutions.com/neia_synchronization/wsdl"

xmlns = "http://www.mesasolutions.com/neia_synchronization/wsdl"

name="IviewsWorkOrders_SOAPHTTP"

xmlns:IviewsWorkOrders_XSD =

"http://www.mesasolutions.com/neia_synchronization"

xmlns:xsd = "http://www.w3.org/2001/XMLSchema"

>

<!-- Define the XML messages with schemas. -->

<wsdl:types>

<xsd:schema

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.mesasolutions.com/neia_synchronization"

xmlns="http://www.mesasolutions.com/neia_synchronization"

elementFormDefault = "qualified">

<!-- xsd:include schemaLocation="IviewMessages.xsd" /-->

<xsd:element name = "RequestHeader" type = "RequestHeader" />

<xsd:complexType name = "RequestHeader" >

<xsd:sequence>

<xsd:element name = "target" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "source" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "RequestID" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "OrderName" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "Request_date_time" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "RequestType" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "GranitedbuserName" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

<xsd:element name = "GranitedbuserPassword" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

<xsd:element name = "Granitedbapplicationserver" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

<xsd:element name = "Granitedbserver" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

<xsd:element name = "Granitedbname" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name = "attr" type = "attr" />

<xsd:complexType name = "attr" >

<xsd:sequence>

<xsd:element name = "name" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

<xsd:element name = "value" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name = "WorkOrderInstance" type = "WorkOrderInstance" />

<xsd:complexType name = "WorkOrderInstance" >

<xsd:sequence>

<xsd:element name = "NetworkOrderName" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "InstallationOrderName" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "NetworkOrderType" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "NetworkOrderDueDate" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "NetworkOrderStatus" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "NetworkOrderDescription" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "InstallationRequestDate" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "Resp_Engineer" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "attr" type = "attr" minOccurs="0" maxOccurs="unbounded" >

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name = "Response" type = "Response" />

<xsd:complexType name = "Response" >

<xsd:sequence>

<xsd:element name = "workOrderInstance" type = "WorkOrderInstance" minOccurs="0" maxOccurs="unbounded" >

</xsd:element>

<xsd:element name = "StatusCode" type = "xsd:string" minOccurs="1" maxOccurs="1" >

</xsd:element>

<xsd:element name = "ExceptionText" type = "xsd:string" minOccurs="0" maxOccurs="1" >

</xsd:element>

</xsd:sequence>

</xsd:complexType>

<xsd:element name = "IviewMessages" type = "IviewMessages" />

<xsd:complexType name = "IviewMessages" >

<xsd:sequence>

<xsd:element name = "Response" type = "Response" minOccurs="0" maxOccurs="1" >

</xsd:element>

<xsd:element name = "RequestHeader" type = "RequestHeader" minOccurs="0" maxOccurs="1" >

</xsd:element>

</xsd:sequence>

<xsd:attribute name="version" type="xsd:string" use="optional"/>

</xsd:complexType>

<xsd:element name = "IviewMessages2" type = "IviewMessages2" />

<xsd:complexType name = "IviewMessages2" >

<xsd:sequence>

<xsd:element name = "RequestHeader" type = "RequestHeader" minOccurs="0" maxOccurs="1" >

</xsd:element>

</xsd:sequence>

<xsd:attribute name="version" type="xsd:string" use="optional"/>

</xsd:complexType>

<xsd:element name="GetworkOrderList">

<xsd:complexType>

<xsd:sequence>

<xsd:element minOccurs="1" maxOccurs="1" name= "IviewMessages" type="IviewMessages"/>

<!--

<xsd:element minOccurs="1" maxOccurs="1" name= "IviewMessages" type="xsd:anyType"/>

-->

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="GetworkOrderListResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element minOccurs="1" maxOccurs="1" name="IviewMessages2" type="IviewMessages2"/>

<!--

<xsd:element minOccurs="1" maxOccurs="1" name="IviewMessages2" type="xsd:anyType"/>

-->

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

</wsdl:types>

<wsdl:message name="GetworkOrderListRequestMsg">

<wsdl:part name="parameters" element="IviewsWorkOrders_XSD:GetworkOrderList"/>

</wsdl:message>

<wsdl:message name="GetworkOrderListResponseMsg">

<wsdl:part name="parameters" element="IviewsWorkOrders_XSD:GetworkOrderListResponse"/>

</wsdl:message>

<wsdl:portType name="IviewsWorkOrders_PT">

<wsdl:operation name="GetworkOrderList">

<wsdl:input message="GetworkOrderListRequestMsg"/>

<wsdl:output message="GetworkOrderListResponseMsg"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="IviewsWorkOrders_SOAPHTTP_Binding" type="IviewsWorkOrders_PT">

<soap:binding style="document"

transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="GetworkOrderList">

<soap:operation soapAction="http://www.mesasolutions.com/neia_synchronization/wsdl/GetworkOrderList"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<!-- The location (URL) of the service corresponding to the SOAP/HTTP binding is provided

here. This location will need to be altered to reflect the actual service deployment.-->

<wsdl:service name="IviewsWorkOrders_SVC">

<wsdl:port name="IviewsWorkOrders_Service"

binding="IviewsWorkOrders_SOAPHTTP_Binding">

<soap:address location=

"http://128.96.130.22:8280/iviews6_4D/IviewsWorkOrders_Service"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Please let me know if you have any solution to this.

Uma...

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Uma,

Deserialization error means, that your WS consumer cannot convert the structure of type "IviewWorkOrders" back to an java object.

Do you have created the WS consumer with the "WS Client Proxy Definition Wizard" of NWDS? And have you imported the wsdl from target URL?

Nevertheless, in my opinion the definition of element "IviewWorkOrders" is missing in section <wsdl:types> of your wsdl. There, a complex type must be defined with this name.

Hope it helps...

Cheers,

Matthias