Anne, I am really confused by all this terminology. I thought I was going to have to do nothing but provide a valid WSDL and get Axis to generate from it. Are you saying that the WSDL below is invalid? It is generated from a 3rd party tool specifically for creating web services. Is the WSDL invalid, or is it that it is valid, but Axis does not support this?
If I do what you suggest (though I don't see why I should have to if the WSDL is valid), that means that each operation will have a single part. That then seems to mean that each method on the client proxy will have a single argument. Is this correct? I don't want it to work that way. I don't want the consumer of the web service to have to create an object and populate each member and then call the method with that single object as the argument. I would prefer that the client proxy method have separate arguments for each piece of input data. Will Axis support this? Thanks. "Anne Thomas Manes" <[EMAIL PROTECTED]> 04/20/2004 11:48 AM Please respond to [EMAIL PROTECTED] To <[EMAIL PROTECTED]> cc Subject RE: SimpleDeserializer encountered a child element Joe, When using Document style, your message definition should include only one <part> definition for your SOAP Body. To use "Wrapped" style, you must define a wrapper element in the <types> section which has the same name as the operation name. This element contains the parameter elements (defined using a <sequence> particle.) You then must reference this element from the one <part> in your <message> definition. 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="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>