[
http://issues.apache.org/jira/browse/AXIS-2386?page=comments#action_12428219 ]
Keith Mashinter commented on AXIS-2386:
---------------------------------------
I've commented out code from JavaBeanHelperWriter and retested and the change
below seems to fix the problem for arrayType declarations. The problem was
that an element with Dimensions (e.g. long[] has Dimensions "[]") was handled
by throwing away the arrayType and just using the inner refType.
// if (elemType.getDimensions().length () > 1) {
System.out.println(this +": elemType " + elemType ); }
//
// 2006-08-15 [EMAIL PROTECTED] removed special check for
getDimensions() since it corrupted the output.
//if ((elemType.getDimensions().length() > 1)
// && (elemType.getClass() == DefinedType.class)) {
// If we have a DefinedType with dimensions, it must
// be a SOAP array derived type. In this case, use
// the refType's QName for the metadata.
//elemType = elemType.getRefType();
//} else
> Java2WSDL changes type double array into a single double.
> ---------------------------------------------------------
>
> Key: AXIS-2386
> URL: http://issues.apache.org/jira/browse/AXIS-2386
> Project: Apache Axis
> Issue Type: Bug
> Components: WSDL processing
> Affects 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
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]