Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.2
-
None
-
XP / JDK 1.4.2_03
Description
Somewhere between 1.2 RC1 and the 02/02/2005 CVS drop, I now get this error from the attached WSDL
org.apache.axis.wsdl.toJava.DuplicateFileException: Duplicate file name: com\sforce\soap\partner\DescribeLayout.java.
Hint: you may have mapped two namespaces with elements of the same name to the same package name.
at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:113)
at org.apache.axis.wsdl.toJava.JavaTypeWriter.generate(JavaTypeWriter.java:113)
at org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(JavaGeneratorFactory.java:423)
at org.apache.axis.wsdl.gen.Parser.generateTypes(Parser.java:540)
at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:427)
at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:44)
at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:357)
at java.lang.Thread.run(Unknown Source)
when run with the -a option.
I noticed 2 things, in Axis 1.1 -a only generates additional classes for elements from the XSD schemas, and these would have a _XXXX class name. In Axis 1.2 -a also generates additional classes that represent each request opreation as well. And somewhere post RC1 the naming of the classes changed from _XXXX to XXXX, so now i get duplicates because there's an XSD type called DescribeLayout and there's an operation called describeLayout (also note that is seems to loose the fact that these are different by case).
So the attached WSDL which is usable by Axis 1.1, early versions of Axis 1.2, is not usable by the latest CVS code. Either the genreation of classes for operations needs to be dropped, or the naming change needs to be reverted. (which would also make moving existing code from Axis 1.1 to use Axis 1.2 to be easier)