> -----Original Message-----
> From: Jay Glanville [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, May 05, 2005 12:03 PM
> To: [email protected]
> Subject: Using JDK5 enums with Axis 1.2
> 
> I have a web application with an embedded instance of Axis 
> 1.2 final in
> it.  We were using JDK 1.4.2, but in preparation for JDK 5, I started
> running some tests.  One of those tests was to create a JDK5 
> enumeration
> and have my web service run/use it.  Just a note, my web 
> service now has
> both JDK 1.4-style enumerations (enum pattern) and JDK 5 enumerations.
> The service implementation looks something like this:
>    public EnumPattern[] getEnumPatern( EnumPattern z ) {...}
>    public EnumType[] getEnumType( EnumType z ) {...}
> The EnumPattern is the 1.4 implementation using the pattern, while
> EnumType is an instance of a JDK 5 enumeration type.  I used 
> both arrays
> and single instances so that the WSDL generators would generate
> definitions of both single and array.
> 
>  
> When I let Axis auto generate the WSDL file, I get definitions for
> EnumPattern[], EnumPattern and EnumType[], but not EnumType.  There is
> also no warnings/errors in my logs (in 1.2-rc3, axis would 
> warn me about
> classes without public constructors, etc).
> 
> When I use the Ant Java2WSDL to generate the WSDL file, I get the
> following warning on the output stream:
>    [axis-java2wsdl] - The class com.nci.common.enums.EnumType
>    does not contain a default constructor, which is a 
>    requirement for a bean class.  The class cannot be converted
>    into an xml schema type.  An xml schema anyType will be used
>    to define this class in the wsdl file.
> Now this is VERY interesting, as the enum type definition in JDK 5
> REQUIRES the enumeration's constructor to be private.  But then of
> course, if I remember correctly, the ant tasks don't actually look at
> the typeMappings to help determine if a bean is actually a bean or an
> enumeration.  So, I'm assuming that this is a false error.
> 
> 
> Now, it may be that I'm configuring the serializer/deserializer wrong.
> I mean, it's happened before, and I'm sure it'll happen 
> again.  So, here
> is what I'm using in my server-config.wsdd file:
>    <typeMapping qname="ns:EnumType"
>       xmlns:ns="urn:service.nci.com"
>       type="java:com.nci.common.enums.EnumType"
>       serializer="org.apache.axis.encoding.ser.EnumSerializerFactory"
>  
> deserializer="org.apache.axis.encoding.ser.EnumDeserializerFactory"
>       encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
>  
>  
> I've done some extensive searching on the mailing lists (both user and
> developer), with rather muddied results.  Some say things work, others
> say things don't.  Many problems were identified with enumerations and
> Axis 1.2-rc1 or rc2, but nothing specific to the final 1.2.
>  
> Can someone explicitly confirm or deny for me whether or not Axis
> supports JDK5 during runtime?

Anyone?

JDG

---
Jay Dickon Glanville

Reply via email to