WSDL2Java: Different class mappings of nested complex types with identical names with JDKs of different vendors.

2009-07-31 Thread Norman Kubicek
Hi,

 

we run in to some problems developing an Axis2 v1.5 Web service client
with SUN JDK 6 (different platforms) and IBM JDK 6 (PowerPC Linux) in
parallel.

The WSDL of the Web service contains following nested type definitions
with identical names:

 

...

xsd:complexType name=string2stringMap

  xsd:sequence

xsd:element maxOccurs=unbounded minOccurs=0
name=entry

  xsd:complexType

xsd:sequence

 xsd:element maxOccurs=1 minOccurs=0
name=key type=xsd:string/

 xsd:element maxOccurs=1 minOccurs=0
name=value type=xsd:string/

/xsd:sequence

  /xsd:complexType

/xsd:element

  /xsd:sequence

/xsd:complexType

 

xsd:complexType name=anyType2anyTypeMap

  xsd:sequence

xsd:element maxOccurs=unbounded minOccurs=0
name=entry

  xsd:complexType

xsd:sequence

 xsd:element maxOccurs=1 minOccurs=0
name=key type=xsd:anyType/

 xsd:element maxOccurs=1 minOccurs=0
name=value type=xsd:anyType/

/xsd:sequence

  /xsd:complexType

/xsd:element

  /xsd:sequence

/xsd:complexType

...

 

As result the WSDL2Java tool generates inner or separate classes
(depends on -u command line option) for the entry type definitions
with the following names:

 

Entry_type0.java

Entry_type1.java

 

The problem is the order the Entry_type*.java classes are created, i.e.
Entry_type0.java belongs to the string2stringMap class in the SUN JDK,
but to the anyType2anyTypeMap class in the IBM JDK. As result source
code that accesses these classes is affected and has to be adapted for
the JDKs of both vendors.

 

Is there any fix or workaround for this issue?

 

Regards,

Norman Kubicek

 

 

 

 

 



Re: WSDL2Java: Different class mappings of nested complex types with identical names with JDKs of different vendors.

2009-07-31 Thread Andreas Veithen
Norman,

Can you open a JIRA for this issue? Thanks.

Andreas

On Fri, Jul 31, 2009 at 11:32, Norman Kubicekn.kubi...@intershop.de wrote:
 Hi,



 we run in to some problems developing an Axis2 v1.5 Web service client with
 SUN JDK 6 (different platforms) and IBM JDK 6 (PowerPC Linux) in parallel.

 The WSDL of the Web service contains following nested type definitions with
 identical names:



 …

 xsd:complexType name=string2stringMap

   xsd:sequence

     xsd:element maxOccurs=unbounded minOccurs=0 name=entry

   xsd:complexType

     xsd:sequence

  xsd:element maxOccurs=1 minOccurs=0
 name=key type=xsd:string/

  xsd:element maxOccurs=1 minOccurs=0
 name=value type=xsd:string/

     /xsd:sequence

   /xsd:complexType

     /xsd:element

   /xsd:sequence

 /xsd:complexType



 xsd:complexType name=anyType2anyTypeMap

   xsd:sequence

     xsd:element maxOccurs=unbounded minOccurs=0 name=entry

   xsd:complexType

     xsd:sequence

  xsd:element maxOccurs=1 minOccurs=0
 name=key type=xsd:anyType/

  xsd:element maxOccurs=1 minOccurs=0
 name=value type=xsd:anyType/

     /xsd:sequence

   /xsd:complexType

     /xsd:element

   /xsd:sequence

 /xsd:complexType

 …



 As result the WSDL2Java tool generates inner or separate classes (depends on
 –u command line option) for the “entry” type definitions with the following
 names:



 Entry_type0.java

 Entry_type1.java



 The problem is the order the Entry_type*.java classes are created, i.e.
 Entry_type0.java belongs to the string2stringMap class in the SUN JDK, but
 to the anyType2anyTypeMap class in the IBM JDK. As result source code that
 accesses these classes is affected and has to be adapted for the JDKs of
 both vendors.



 Is there any fix or workaround for this issue?



 Regards,

 Norman Kubicek