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):

Reply via email to