I use Axis 1.3, and it generates a different set of classes. I am not
getting any class called "DeviceIDImpl", but an abstract "DeviceID" one.
I think the difference comes from Axis2 XmlBeans support (I see you
activate this option in the command-line). Have you inspected the source
code of "DeviceIDImpl"? For what you said, it seems that it has the
appropriate data, at least internally, despite its class name. If that
class is a "bag" for several WSDL types, it might have methods for
converting from and to the "supported" subtypes. This is just a guess,
because I don't know how XmlBeans work. :-P
I am at work now, so I cannot expend much time in testing the generated
classes, but I will try later ;-)
Apart from this, I see another error in the msgId field. Its datetime
attribute is filled with the result of calling toString() on a Calendar
instance, and this is incorrect. In the client code, you should do
something like:
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTime = sdf.format(calendar.getTime());
And use the string value, as this is the format expected for the
attribute in the XSD.
Regards,
Rodrigo Ruiz
Justin Schoeman wrote:
wsdl at:
http://nrs.eskom.co.za/xmlvend/docs/Specification/November2005/XMLVend20.asp
command line:
java -classpath $AXIS2_CLASSPATH org.apache.axis2.wsdl.WSDL2Java -p
expertron_client -d xmlbeans -uri xmlvend-full-2.0.wsdl -ss -t -sd
Example soap request (no response yet) (please forgive the formatting
- ripped from tcpdump):