List<Double> parameters don't map to xsd:double in generated WSDL
-----------------------------------------------------------------

                 Key: CXF-1482
                 URL: https://issues.apache.org/jira/browse/CXF-1482
             Project: CXF
          Issue Type: Bug
          Components: Aegis Databinding, Soap Binding
    Affects Versions: 2.1
         Environment: Glassfish App Server
            Reporter: Javier Delgadillo


When using the Mar 14 snapshot build of 2.1, CXF outputs less than desirable 
WSDL for any service that has an input parameter of type List<Double> when used 
in conjuction with Aegis Mapping files.

With previous builds, the List<Double> would map to xsd:double, but now it 
creates its own namespace.

Here's the interface:
public interface Foo
{
    int bar( List<Double> doublesList );
}

Here's the Aegis mapping file:
<?xml version="1.0"?>
<!-- xmlns="http://xfire.codehaus.org/schemas/1.0/mapping.xsd"; -->
<mappings>
    <mapping>
        <method name="bar">
            <parameter index="0" mappedName="doublesList" 
componentType="java.lang.Double"/>
        </method>
    </mapping>
</mappings>

Here's the generated WSDL:
<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://arcwebservices.com/v4"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="Foo" 
targetNamespace="http://arcwebservices.com/v4";>
  <wsdl:types>
<xsd:schema xmlns:tns="http://lang.java"; attributeFormDefault="qualified" 
elementFormDefault="qualified" targetNamespace="http://lang.java";>
    <xsd:complexType name="Double">
        <xsd:sequence>
            <xsd:element minOccurs="0" name="infinite" type="xsd:boolean"/>
            <xsd:element minOccurs="0" name="naN" type="xsd:boolean"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ArrayOfDouble">
        <xsd:sequence>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="Double" 
nillable="true" type="tns:Double"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>
<xsd:schema xmlns:ns0="http://lang.java"; attributeFormDefault="unqualified" 
elementFormDefault="qualified" targetNamespace="http://arcwebservices.com/v4";>
    <xsd:import namespace="http://lang.java"/>
    <xsd:element name="bar">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="doublesList" type="ns0:ArrayOfDouble"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="barResponse">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="return" type="xsd:int"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>
  </wsdl:types>
  <wsdl:message name="barResponse">
    <wsdl:part element="tns:barResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="bar">
    <wsdl:part element="tns:bar" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="FooPortType">
    <wsdl:operation name="bar">
      <wsdl:input message="tns:bar" name="bar"/>
      <wsdl:output message="tns:barResponse" name="barResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="FooSoapBinding" type="tns:FooPortType">
    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="bar">
      <soap:operation soapAction="" style="document"/>
      <wsdl:input name="bar">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="barResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="Foo">
    <wsdl:port binding="tns:FooSoapBinding" name="FooPort">
      <soap:address location="http://localhost:8080/soap/Foo"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to