DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14152>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14152 Java2WSDL generates invalid WSDL for arrays specified as public members Summary: Java2WSDL generates invalid WSDL for arrays specified as public members Product: Axis Version: 1.0 Platform: Other OS/Version: Windows NT/2K Status: NEW Severity: Major Priority: Other Component: WSDL processing AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] If a class contains an array defined using a public member, eg: public class MyClass { public String[] Values; } the generated WSDL looks like this: <complexType name="MyClass"> <sequence> <element maxOccurs="unbounded" name="Values" nillable="true" type="xsd:string"/> </sequence> </complexType> This is not a valid representation of an array, as an array must be given its own accessor which derives from the SOAP-ENC:Array type. If the array is defined using bean setter/getter methods as follows: public class MyClass { private String[] Values; public String[] getValues() { return Values; } public void setValues(String[] values) { Values=values; } } The generated WSDL looks like this: <complexType name="MyClass"> <sequence> <element name="values" nillable="true" type="impl:ArrayOf_xsd_string"/> </sequence> </complexType> <complexType name="ArrayOf_xsd_string"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/> </restriction> </complexContent> </complexType> This is the correct representation of an array. The WSDL generated by public members and bean methods should be the same (and correct!) The workaround is to always use getter/setter methods for array properties, but this results in the accessor names always having a lower-case first character, which will break existing applications.