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>



Reply via email to