tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Laws <simonsl...@googlemail.com>
Subject Re: Wrong generated WSDL
Date Thu, 07 May 2009 15:50:42 GMT
So what I find with a quick test is the following.

With a bean..

package helloworld;

public class ABean {

    protected String field1;
    protected String field2;

An a service inteface..

public interface HelloWorldService {

    public String getGreetings(String name);
    public String getGreetingsBean(ABean bean);
    public String getGreetingsBeanArray(ABean[] bean);
}

And a package-info.java

@javax.xml.bind.annotation.XmlSchema(namespace="http://test")
package helloworld;

I get the following generated WSDL types from Tuscany...

<wsdl:types>
    <xs:schema targetNamespace="http://test" version="1.0"
        xmlns:tns="http://test" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:complexType name="aBean">
            <xs:sequence>
                <xs:element minOccurs="0" name="field1" type="xs:string" />
                <xs:element minOccurs="0" name="field2" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType final="#all" name="aBeanArray">
            <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0"
                    name="item" nillable="true" type="tns:aBean" />
            </xs:sequence>
        </xs:complexType>
    </xs:schema>
    <xs:schema attributeFormDefault="qualified"
        elementFormDefault="unqualified" targetNamespace="http://helloworld/"
        xmlns:ns0="http://test" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:import namespace="http://test" />
        <xs:element name="getGreetingsBean">
            <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="0" name="arg0"
                        nillable="true" type="ns0:aBean" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="getGreetings">
            <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="0" name="arg0"
                        nillable="true" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="getGreetingsResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="0" name="return"
                        nillable="true" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="getGreetingsBeanResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="0" name="return"
                        nillable="true" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="getGreetingsBeanArrayResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="0" name="return"
                        nillable="true" type="xs:string" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="getGreetingsBeanArray">
            <xs:complexType>
                <xs:sequence>
                    <xs:element maxOccurs="unbounded"
                        minOccurs="0" name="arg0" nillable="true"
type="ns0:aBean" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:schema>
</wsdl:types>


Which validates for me. Haven't actually tries generating a client
from it but it looks OK. So if you can live with this this should get
you going. I'm not sure how to get vectors to work.

We do need a JIRA to cover this very common case as it's a real
gotcha. I note that https://issues.apache.org/jira/browse/TUSCANY-2853
was actually closed when in reality we just use a work around. I'll
reopen it and add some notes.

Simon

Mime
View raw message