Sorry -- I didn't have time to complete my earlier email.
Here's an example of what your WSDL should look like.
Focusing on your first operation, partInquiry:
You need to define an element named "partInquiry". I suggest modifying your
first schema definition as follows:
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="urn:WEJOEI:genpt.com"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="partInquiry>
<complexType name="partInquiry_t"
<sequence>
<element name="divNumber" type="xsd:string"/>
<element name="dcNumber" type="xsd:string"/>
<element name="custNumber" type="xsd:string"/>
<element name="quantity" type="xsd:int"/>
<element name="partId" type="xsd:string"/>
<element name="lineId" type="xsd:string"/>
</sequence>
</complexType>
</element>
...
</schema>
...
</wsdl:types>
You must modify the "PartInquiryRequest" message definition:
<wsdl:message name="PartInquiryRequest">
<wsdl:part element="impl:partInquiry" name="input"/>
</wsdl:message>
You should remove the parameterOrder attributes from your <portType>
definitions:
<wsdl:portType name="WEJOEI">
<wsdl:operation name="partInquiry">
<wsdl:input message="impl:PartInquiryRequest"
name="partInquiryRequest"/>
<wsdl:output message="impl:PartInquiryResponse"
name="partInquiryResponse"/>
</wsdl:operation>
...
</wsdl:portType>
You must also remove the namespace attribute from your <binding>
definitions:
<wsdl:binding name="WEJOEISoapBinding" type="impl:WEJOEI">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="partInquiry">
<wsdlsoap:operation
soapAction="urn:WEJOEI:genpt.com/PartInquiry"/>
<wsdl:input name="partInquiryRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="partInquiryResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
...
</wsdl:binding>
Regards,
Anne
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 20, 2004 7:46 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: SimpleDeserializer encountered a child element
I am having incredible problems trying to call an Axis web service from
.NET. I am working with MS support, but it is not going well. I am now
using Axis 1.2b. There seems to be a lot of miscommunication between Axis
and .NET in terms of interpretting WSDL. The standard must leave a LOT to
interpretation.
One of the problems initially is that his proxy generator interprets that
the ParameterStyle should be bare, but when the web service is called, I
get an exception. It looks as though Axis is not getting the operation
name in the soap envelope and is expecting it. So, I have now forced
(hand modified) the .NET proxy to use wrapped parameter style. But I
still get the problem below.
Here is what the SOAP trace looks like.
Request:
POST /axis/services/WEJOEI HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client
Protocol 1.1.4322.573)
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:WEJOEI:genpt.com/PartInquiry"
Content-Length: 441
Expect: 100-continue
Connection: Keep-Alive
Host: localhost:8082
<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><partInquiry
xmlns="urn:WEJOEI:genpt.com"><divNumber>70</divNumber><dcNumber>01</dcNumber
><custNumber>994</custNumber><quantity>1</quantity><partId>1515</partId><lin
eId>FIL</lineId></partInquiry></soap:Body></soap:Envelope>
Response:
HTTP/1.1 100 Continue
HTTP/1.1 500 Internal Server Error
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked
Date: Tue, 20 Apr 2004 14:24:35 GMT
Server: Apache Coyote/1.0
Connection: close
21e
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>org.xml.sax.SAXException: SimpleDeserializer encountered a
child element, which is NOT expected, in something it was trying to
deserialize.</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
0
And here is the WSDL from axis:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:WEJOEI:genpt.com"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="urn:WEJOEI:genpt.com" xmlns:intf="urn:WEJOEI:genpt.com"
xmlns:tns1="urn:types:WEJOEI:genpt.com" 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.2beta
Built on Mar 31, 2004 (12:47:03 EST)-->
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="urn:WEJOEI:genpt.com" xmlns="
http://www.w3.org/2001/XMLSchema">
<element name="divNumber" type="xsd:string"/>
<element name="dcNumber" type="xsd:string"/>
<element name="custNumber" type="xsd:string"/>
<element name="quantity" type="xsd:int"/>
<element name="partId" type="xsd:string"/>
<element name="lineId" type="xsd:string"/>
<element name="returnData" type="tns1:returnData_t"/>
<element name="orderDCAbbreviation" type="xsd:string"/>
<element name="shippingCode" type="xsd:string"/>
<element name="callbackFlag" type="xsd:string"/>
<element name="purchaseOrder" type="xsd:string"/>
<element name="remarks" type="xsd:string"/>
<element name="typeCode" type="xsd:string"/>
<element name="password" type="xsd:string"/>
<element name="tams" type="xsd:string"/>
<element name="tamsRevision" type="xsd:string"/>
<element name="inqOrdCode" type="xsd:string"/>
<element name="optionCode" type="xsd:string"/>
<element name="orderRemarks" type="xsd:string"/>
</schema>
<schema elementFormDefault="qualified"
targetNamespace="urn:types:WEJOEI:genpt.com" xmlns="
http://www.w3.org/2001/XMLSchema">
<complexType name="messageData_t">
<sequence>
<element name="dcAbbreviation" nillable="true" type="xsd:string"/>
<element name="messageNumber" nillable="true" type="xsd:string"/>
<element name="messageText" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="returnData_t">
<sequence>
<element name="statusCode" type="xsd:int"/>
<element maxOccurs="unbounded" name="messageDataCollection"
nillable="true" type="tns1:messageData_t"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="PartOrderMfgRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
<wsdl:part element="impl:orderDCAbbreviation"
name="orderDCAbbreviation"/>
<wsdl:part element="impl:shippingCode" name="shippingCode"/>
<wsdl:part element="impl:callbackFlag" name="callbackFlag"/>
<wsdl:part element="impl:purchaseOrder" name="purchaseOrder"/>
<wsdl:part element="impl:remarks" name="remarks"/>
</wsdl:message>
<wsdl:message name="InqjoeiResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartInquiryMfgResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartOrderMfgRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
<wsdl:part element="impl:orderDCAbbreviation"
name="orderDCAbbreviation"/>
<wsdl:part element="impl:shippingCode" name="shippingCode"/>
<wsdl:part element="impl:callbackFlag" name="callbackFlag"/>
<wsdl:part element="impl:purchaseOrder" name="purchaseOrder"/>
<wsdl:part element="impl:remarks" name="remarks"/>
</wsdl:message>
<wsdl:message name="InqjoeiResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartInquiryMfgResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartOrderResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="InqjoeiRequest">
<wsdl:part element="impl:typeCode" name="typeCode"/>
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:password" name="password"/>
<wsdl:part element="impl:tams" name="tams"/>
<wsdl:part element="impl:tamsRevision" name="tamsRevision"/>
<wsdl:part element="impl:inqOrdCode" name="inqOrdCode"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
<wsdl:part element="impl:optionCode" name="optionCode"/>
<wsdl:part element="impl:orderDCAbbreviation"
name="orderDCAbbreviation"/>
<wsdl:part element="impl:shippingCode" name="shippingCode"/>
<wsdl:part element="impl:callbackFlag" name="callbackFlag"/>
<wsdl:part element="impl:purchaseOrder" name="purchaseOrder"/>
<wsdl:part element="impl:orderRemarks" name="orderRemarks"/>
</wsdl:message>
<wsdl:message name="PartDownloadResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartOrderMfgResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartInquiryResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartInquiryRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
</wsdl:message>
<wsdl:message name="PartOrderRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
<wsdl:part element="impl:orderDCAbbreviation"
name="orderDCAbbreviation"/>
<wsdl:part element="impl:shippingCode" name="shippingCode"/>
<wsdl:part element="impl:callbackFlag" name="callbackFlag"/>
<wsdl:part element="impl:purchaseOrder" name="purchaseOrder"/>
<wsdl:part element="impl:remarks" name="remarks"/>
</wsdl:message>
<wsdl:message name="PartDownloadRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
</wsdl:message>
<wsdl:message name="PartInquiryMfgRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
</wsdl:message>
<wsdl:message name="PartOrderResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="InqjoeiRequest">
<wsdl:part element="impl:typeCode" name="typeCode"/>
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:password" name="password"/>
<wsdl:part element="impl:tams" name="tams"/>
<wsdl:part element="impl:tamsRevision" name="tamsRevision"/>
<wsdl:part element="impl:inqOrdCode" name="inqOrdCode"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
<wsdl:part element="impl:optionCode" name="optionCode"/>
<wsdl:part element="impl:orderDCAbbreviation"
name="orderDCAbbreviation"/>
<wsdl:part element="impl:shippingCode" name="shippingCode"/>
<wsdl:part element="impl:callbackFlag" name="callbackFlag"/>
<wsdl:part element="impl:purchaseOrder" name="purchaseOrder"/>
<wsdl:part element="impl:orderRemarks" name="orderRemarks"/>
</wsdl:message>
<wsdl:message name="PartDownloadResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartOrderMfgResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartInquiryResponse">
<wsdl:part element="impl:returnData" name="returnData"/>
</wsdl:message>
<wsdl:message name="PartInquiryRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
</wsdl:message>
<wsdl:message name="PartOrderRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:quantity" name="quantity"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
<wsdl:part element="impl:orderDCAbbreviation"
name="orderDCAbbreviation"/>
<wsdl:part element="impl:shippingCode" name="shippingCode"/>
<wsdl:part element="impl:callbackFlag" name="callbackFlag"/>
<wsdl:part element="impl:purchaseOrder" name="purchaseOrder"/>
<wsdl:part element="impl:remarks" name="remarks"/>
</wsdl:message>
<wsdl:message name="PartDownloadRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
</wsdl:message>
<wsdl:message name="PartInquiryMfgRequest">
<wsdl:part element="impl:divNumber" name="divNumber"/>
<wsdl:part element="impl:dcNumber" name="dcNumber"/>
<wsdl:part element="impl:custNumber" name="custNumber"/>
<wsdl:part element="impl:partId" name="partId"/>
<wsdl:part element="impl:lineId" name="lineId"/>
</wsdl:message>
<wsdl:portType name="WEJOEI">
<wsdl:operation name="partInquiry" parameterOrder="divNumber
dcNumber custNumber quantity partId lineId">
<wsdl:input message="impl:PartInquiryRequest"
name="PartInquiryRequest"/>
<wsdl:output message="impl:PartInquiryResponse"
name="PartInquiryResponse"/>
</wsdl:operation>
<wsdl:operation name="partInquiryMfg" parameterOrder="divNumber
dcNumber custNumber partId lineId">
<wsdl:input message="impl:PartInquiryMfgRequest"
name="PartInquiryMfgRequest"/>
<wsdl:output message="impl:PartInquiryMfgResponse"
name="PartInquiryMfgResponse"/>
</wsdl:operation>
<wsdl:operation name="partOrder" parameterOrder="divNumber dcNumber
custNumber quantity partId lineId orderDCAbbreviation shippingCode
callbackFlag purchaseOrder remarks">
<wsdl:input message="impl:PartOrderRequest"
name="PartOrderRequest"/>
<wsdl:output message="impl:PartOrderResponse"
name="PartOrderResponse"/>
</wsdl:operation>
<wsdl:operation name="partOrderMfg" parameterOrder="divNumber
dcNumber custNumber quantity partId lineId orderDCAbbreviation
shippingCode callbackFlag purchaseOrder remarks">
<wsdl:input message="impl:PartOrderMfgRequest"
name="PartOrderMfgRequest"/>
<wsdl:output message="impl:PartOrderMfgResponse"
name="PartOrderMfgResponse"/>
</wsdl:operation>
<wsdl:operation name="partDownload" parameterOrder="divNumber
dcNumber custNumber partId lineId">
<wsdl:input message="impl:PartDownloadRequest"
name="PartDownloadRequest"/>
<wsdl:output message="impl:PartDownloadResponse"
name="PartDownloadResponse"/>
</wsdl:operation>
<wsdl:operation name="inqjoei" parameterOrder="typeCode divNumber
dcNumber custNumber password tams tamsRevision inqOrdCode quantity partId
lineId optionCode orderDCAbbreviation shippingCode callbackFlag
purchaseOrder orderRemarks">
<wsdl:input message="impl:InqjoeiRequest" name="InqjoeiRequest"/>
<wsdl:output message="impl:InqjoeiResponse"
name="InqjoeiResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WEJOEISoapBinding" type="impl:WEJOEI">
<wsdlsoap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="partInquiry">
<wsdlsoap:operation
soapAction="urn:WEJOEI:genpt.com/PartInquiry"/>
<wsdl:input name="PartInquiryRequest">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:input>
<wsdl:output name="PartInquiryResponse">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="partInquiryMfg">
<wsdlsoap:operation
soapAction="urn:WEJOEI:genpt.com/PartInquiryMfg"/>
<wsdl:input name="PartInquiryMfgRequest">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:input>
<wsdl:output name="PartInquiryMfgResponse">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="partOrder">
<wsdlsoap:operation soapAction="urn:WEJOEI:genpt.com/PartOrder"/>
<wsdl:input name="PartOrderRequest">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:input>
<wsdl:output name="PartOrderResponse">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="partOrderMfg">
<wsdlsoap:operation
soapAction="urn:WEJOEI:genpt.com/PartOrderMfg"/>
<wsdl:input name="PartOrderMfgRequest">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:input>
<wsdl:output name="PartOrderMfgResponse">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="partDownload">
<wsdlsoap:operation
soapAction="urn:WEJOEI:genpt.com/PartDownload"/>
<wsdl:input name="PartDownloadRequest">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:input>
<wsdl:output name="PartDownloadResponse">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="inqjoei">
<wsdlsoap:operation soapAction="urn:WEJOEI:genpt.com/Inqjoei"/>
<wsdl:input name="InqjoeiRequest">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:input>
<wsdl:output name="InqjoeiResponse">
<wsdlsoap:body namespace="urn:WEJOEI:genpt.com"
use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WEJOEI">
<wsdl:port binding="impl:WEJOEISoapBinding" name="WEJOEI">
<wsdlsoap:address location="
http://localhost:8080/axis/services/WEJOEI"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>