Everyone,
I've got a wsdl that extends xsd:dateTime, and lets pretend for the time being that I am not able to modify the wsdl:
<xsd:extension base="xsd:dateTime"> <xsd:all> <xsd:element name="nanos" type="xsd:int"/> </xsd:all> </xsd:extension>
I'm trying to use WSDL2Java (from Axis 1.2 RC2) to generate stubs. The generated Java code for this extension of xsd:dateTime looks like:
public class Timestamp
extends java.util.Calendar
implements java.io.Serializable {
...
}
java.util.Calendar defines a number of abstract methods. The generated code which extends the Calander does not override these abstract methods, so compiling the stubs fails.
I can hand-edit the generated code and extend java.util.GregorianCalendar instead of java.util.Calendar. GregorianCalendar has implementations of the abstract methods, so the compilation succeeds.
My question is what is the best way to solve this issue? Is this an Axis bug, since the abstract methods are not overridden while extending? Or is this expected behavior and I should adjust the wsdl (which I'm pretending that I cannot do). Or is modifying the generated code accepted way of doing things?
Thanks!
Elliot