[ http://issues.apache.org/jira/browse/AXIS-2386?page=comments#action_12364458 ]
Sebastian Mittelstädt commented on AXIS-2386: --------------------------------------------- I can confirm this bug regarding the WSDL that is generated from the serviceName?wsdl URl. My original WSDL was generated by java2wsdl and is correct (RPC/encoded). But when the service is deployed, and the wsdl is generated by serviceName?wsdl, all occurences of double arrays are converted into single double. Original WSDL: <element name="valueX" nillable="true" type="impl:ArrayOf_xsd_double"/> Generated WSDL by serviceName?wsdl : <element name="valueX" nillable="true" type="xsd:double" /> I also saw this happen with other primitives. This impacts pruductive systems where wsdl is published to third party vendors and should be fixes ASAP. I suggest to increase the priority of this bug. > Java2WSDL changes type double array into a single double. > --------------------------------------------------------- > > Key: AXIS-2386 > URL: http://issues.apache.org/jira/browse/AXIS-2386 > Project: Apache Axis > Type: Bug > Components: WSDL processing > Versions: 1.2.1, 1.3 > Environment: Linux 2.4.26, java version "1.5.0_04", Tomcat 5.5 > Reporter: Eric Webster > Priority: Minor > Attachments: DataSet.wsdl, IncorrectDataSet.wsdl > > Java2WSDL changes type double array into a single double. > This happens when you run Java2WSDL manually on the command line or when a > wsdl file is generated from a service_name?wsdl url. > Currently to fix this I just manually edit the generated WSDL file and > distrobute that. > The Java code originally came from a hand made WSDL file. WSDL2Java was used > to generate the Java code. The section that is affected by this problem is > the 'ValueVector' complexType which contains and element 'values' which is an > array of doubles. After converting to Java and then back to WSDL 'values' > becomes a single double. > Here is the original WSDL file. > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions > targetNamespace="dataset.odin.cirg.washington.edu" > xmlns:apachesoap="http://xml.apache.org/xml-soap" > xmlns:impl="dataset.odin.cirg.washington.edu" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <wsdl:types> > <schema targetNamespace="dataset.odin.cirg.washington.edu" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> > > <complexType name="ArrayOf_xsd_double"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:double[]"/> > </restriction> > </complexContent> > </complexType> > <complexType name="ArrayOf_xsd_string"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/> > </restriction> > </complexContent> > </complexType> > > <simpleType name="TypeEnum"> > <restriction base="xsd:string"> > <enumeration value="count"/> > <enumeration value="flag"/> > <enumeration value="score"/> > <enumeration value="blank"/> > <enumeration value="error"/> > <enumeration value="other"/> > <enumeration value="unknown"/> > </restriction> > </simpleType> > <simpleType name="IntervalUnitEnum"> > <restriction base="xsd:string"> > <enumeration value="second"/> > <enumeration value="week"/> > <enumeration value="month"/> > <enumeration value="year"/> > </restriction> > </simpleType> > <complexType name="Attribute"> > <sequence> > <element name="name" type="xsd:string"/> > <element name="value" type="xsd:string" nillable="true"/> > </sequence> > </complexType> > <complexType name="ArrayOf_impl_Attribute"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" > wsdl:arrayType="impl:Attribute[]"/> > </restriction> > </complexContent> > </complexType> > <complexType name="ValueVector"> > <sequence> > <element name="name" type="xsd:string" nillable="true"/> > <element name="type" type="impl:TypeEnum"/> > <element name="date" type="xsd:string"/> > <element name="interval" type="xsd:int"/> > <element name="intervalUnit" type="impl:IntervalUnitEnum"/> > <element name="attributes" type="impl:ArrayOf_impl_Attribute" > nillable="true"/> > <element name="values" type="impl:ArrayOf_xsd_double" > nillable="true"/> > </sequence> > </complexType> > <complexType name="ArrayOf_impl_ValueVector"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" > wsdl:arrayType="impl:ValueVector[]"/> > </restriction> > </complexContent> > </complexType> > <complexType name="DataSet"> > <sequence> > <element name="name" type="xsd:string" nillable="true"/> > <element name="attributes" type="impl:ArrayOf_impl_Attribute" > nillable="true"/> > <element name="vectors" type="impl:ArrayOf_impl_ValueVector"/> > </sequence> > </complexType> > <complexType name="ArrayOf_impl_DataSet"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:DataSet[]"/> > </restriction> > </complexContent> > </complexType> > <complexType name="DataSetArray"> > <sequence> > <element name="array" type="impl:ArrayOf_impl_DataSet"/> > </sequence> > </complexType> > <complexType name="SurvCol"> > <sequence> > <element name="name" type="xsd:string"/> > <element name="values" type="impl:ArrayOf_xsd_string"/> > <element name="attributes" type="impl:ArrayOf_impl_Attribute" > nillable="true"/> > </sequence> > </complexType> > <complexType name="ArrayOf_impl_SurvCol"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:SurvCol[]"/> > </restriction> > </complexContent> > </complexType> > <complexType name="SurvDataSet"> > <sequence> > <element name="name" type="xsd:string" nillable="true"/> > <element name="attributes" type="impl:ArrayOf_impl_Attribute" > nillable="true"/> > <element name="vectors" type="impl:ArrayOf_impl_SurvCol"/> > </sequence> > </complexType> > <complexType name="ArrayOf_impl_SurvDataSet"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" > wsdl:arrayType="impl:SurvDataSet[]"/> > </restriction> > </complexContent> > </complexType> > <complexType name="SurvDataSetArray"> > <sequence> > <element name="array" type="impl:ArrayOf_impl_SurvDataSet"/> > </sequence> > </complexType> > </schema> > </wsdl:types> > </wsdl:definitions> > Here is what 'ValueVector' turns into after running WSDL2Java (which creates > correct java code) and then Java2WSDL. > <complexType name="ValueVector"> > <sequence> > <element name="name" nillable="true" type="xsd:string"/> > <element name="type" type="tns2:TypeEnum"/> > <element name="date" type="xsd:string"/> > <element name="interval" type="xsd:int"/> > <element name="intervalUnit" type="tns2:IntervalUnitEnum"/> > <element name="attributes" nillable="true" > type="impl:ArrayOf_tns1_Attribute"/> > <element name="values" nillable="true" type="xsd:double"/> > </sequence> > </complexType> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
