Axis will not register mapping for type it does not find references to in
the WSDL, this is (was) mainly a problem when dealing with header, however
your problem sound similar, did you use -a when you generated your code?

Sylvain.

-----Original Message-----
From: dweber [mailto:dweber@;asyst-connect.com]
Sent: Saturday, November 09, 2002 12:07 PM
To: [EMAIL PROTECTED]
Subject: Cannot find deserializer error


I'm using stubs generated by wsdlToJava, and not having much luck.

The WSDL is:

<xs:complexType name="ErrorType">
  <xs:sequence>
    <xs:element name="ErrorTime" type="xs:dateTime"/>
    <xs:element name="ErrorType" type="xs:string"/>
    <xs:element name="ErrorCode" type="xs:string"/>
    <xs:element name="ErrorDesc" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="IsEdaEnabled">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="eda:EquipmentID"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:element name="IsEdaEnabledResponse">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="IsEnabled" type="xs:boolean"/>
      <xs:element name="Error" type="eda:ErrorType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

<wsdl:message name="IsEdaEnabledIn">
  <wsdl:part name="IsEdaEnabledRequest" element="eda:IsEdaEnabled"/>
</wsdl:message>

<wsdl:message name="IsEdaEnabledOut">
  <wsdl:part name="IsEdaEnabledResponse"
element="eda:IsEdaEnabledResponse"/>
</wsdl:message>

<wsdl:operation name="IsEdaEnabled">
  <wsdl:input name="IsEdaEnabledInput" message="IsEdaEnabledIn"/>
  <wsdl:output name="IsEdaEnabledOutput" message="IsEdaEnabledOut"/>
</wsdl:operation>

For some reason, the WSDL parser generates a function signature of:
public void isEdaEnabled(EquipmentIdType equipmentID, BooleanHolder
isEnabled, ErrorTypeHolder error)

Ok, fine, those are the values I'm interested in, so I don't complain.  But
it does:

org.xml.sax.SAXException: Deserializing parameter 'Result':  could not find
deserializer for type IsEdaEnabledResponse

I have no idea where Axis is looking for deserializers, the response
message, of course, has the IsEdaEnabledResponse tag, just like the WSDL
would make you believe:

<?xml version='1.0' encoding='UTF-8'?>
   <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
soap:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
      <soap:Body>
         <n:IsEdaEnabledResponse xmlns:n='urn:semi-org:schema:eda_ps_v0_0'>
            <Result href='#id0'></Result>
         </n:IsEdaEnabledResponse>
         <id0 id='id0' soapenc:root='0' xsi:type='IsEdaEnabledResponse'>
            <IsEnabled xsi:type='xsd:boolean'>false</IsEnabled>
            <Error href='#id1'></Error>
         </id0>
         <id1 id='id1' soapenc:root='0' xsi:type='ErrorType'>
            <ErrorTime
xsi:type='xsd:dateTime'>2002-11-08T00:31:52.546Z</ErrorTime>
            <ErrorType xsi:type='xsd:string'>Client Not Found</ErrorType>
            <ErrorCode xsi:type='xsd:string'>0</ErrorCode>
            <ErrorDesc xsi:type='xsd:string'>Unknown client id:
demo</ErrorDesc>
         </id1>
      </soap:Body>
   </soap:Envelope>

This is in rpc format, but doc/literal gives me the same error.  I am having
some trouble on the server side getting the namespaces correct in
doc/literal, but I'm not convinced this is the issue.  The above XML looks
correct to the naked eye.

Note that the stub client does not have any reference to
IsEdaEnabledResponse in it's constructor cache section.  Adding the class as
a parameter doesn't help.  Setting the return value of the invoke call
doesn't help.  The class does exist, and has a getDeserializer function on
it.

I'm about at my wits end on this one.  Any help appreciated.


This message may contain privileged and/or confidential information.  If you
have received this e-mail in error or are not the intended recipient, you
may not use, copy, disseminate or distribute it; do not open any
attachments, delete it immediately from your system and notify the sender
promptly by e-mail that you have done so.  Thank you.

Reply via email to