WSDL2Java generates faulty code in cases where an attribute is defined as a 
list of enumerated types
----------------------------------------------------------------------------------------------------

         Key: AXIS-2395
         URL: http://issues.apache.org/jira/browse/AXIS-2395
     Project: Apache Axis
        Type: Bug
  Components: WSDL processing  
    Versions: 1.3    
 Environment: Windows XP
    Reporter: Thomas Bevan


I get the following Java exception when I run Axis client code to call a remote 
method returning a data-type 
of the sort described above. 

The actual data-type in question is defined below at thebottom of the message.

Axis works properly when the enumerate type is not part of a list.


 AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
  faultSubcode:
  faultString: java.lang.ClassCastException: 
org.apache.axis.encoding.ser.EnumDeserializer
  faultActor:
  faultNode:
  faultDetail:
     {http://xml.apache.org/axis/}stackTrace:java.lang.ClassCastException: 
org.apache.axis.encoding.ser.EnumDeserializer

     at 
org.apache.axis.encoding.ser.SimpleListDeserializerFactory.getDeserializerAs(SimpleListDeserializerFactory.java:78)
     at 
org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
     at 
org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547
     at 
org.apache.axis.encoding.ser.BeanDeserializer.getDeserializer(BeanDeserializer.java:514)
     at 
org.apache.axis.encoding.ser.BeanDeserializer.onStartElement(BeanDeserializer.java:427)
     at 
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:393)
     at 
org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.java:154)
     at 
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
     at 
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
     at 
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
     at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
     at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
     at org.apache.axis.client.Call.invoke(Call.java:2469)
     at org.apache.axis.client.Call.invoke(Call.java:2366)
     at org.apache.axis.client.Call.invoke(Call.java:1812)


The WSDL defines the following data structure;

<xs:simpleType name="AddressTypeType">
                <xs:annotation>
                        <xs:documentation>Enumerates address 
types</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:string">
                        <xs:enumeration value="Primary">
                                <xs:annotation>
                                        <xs:documentation>Primary 
address</xs:documentation>
                                </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Mailing">
                                <xs:annotation>
                                        <xs:documentation>Mailing 
address</xs:documentation>
                                </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="Invoice">
                                <xs:annotation>
                                        <xs:documentation>Invoice 
address</xs:documentation>
                                </xs:annotation>
                        </xs:enumeration>
                </xs:restriction>
</xs:simpleType>        
            
<xs:simpleType name="AddressTypeListType">
        <xs:list itemType="AddressTypeType"/>
</xs:simpleType>
    
<xs:complexType name="TypedAUAddressType">
        <xs:complexContent>
        <xs:extension base="AUAddressType">
            <xs:attribute name="type" use="required" 
type="AddressTypeListType"/>
        </xs:extension>
        </xs:complexContent>
</xs:complexType>
    

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to