I am trying to write an operation in WSDL that returns a list. Essentially, I
want wsdl2java to generate the following method for me:
public List<AccountSummary> getAccountSummaries();
How do I do this? I tried different things, but I always end up with wsdl2java
creating a wrapper over the list and returning this wrapper, e.g.
public AccountSummaries getAccountSummaries();
where AccountSummaries wraps a List<AccountSummary>.
Here's my WSDL. Can someone show me how to change it so that the
getAccountSummaries() method returns an unwrapped list?
<definitions
targetNamespace="http://myapp.org/account.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:acnt="http://myapp.org/account.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://myapp.org/account.wsdl">
<types>
<xsd:schema
targetNamespace="http://myapp.org/account.xsd"
elementFormDefault="qualified"
xmlns:tns="http://myapp.org/account.xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="AccountSummaries" type="tns:AccountSummaries" />
<xsd:complexType name="AccountSummaries">
<xsd:sequence>
<xsd:element name="AccountSummary" type="tns:AccountSummary"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AccountSummary">
<xsd:sequence>
<xsd:element name="id" type="xsd:long" />
<xsd:element name="cash" type="xsd:decimal" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="AccountSummariesRequest" />
<message name="AccountSummariesResponse">
<part name="AccountSummaries" element="acnt:AccountSummaries" />
</message>
<portType name="AccountProvider">
<operation name="GetAccountSummaries">
<input message="tns:AccountSummariesRequest" />
<output message="tns:AccountSummariesResponse" />
</operation>
</portType>
<binding name="AccountBinding" type="tns:AccountProvider">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="GetAccountSummaries">
<soap:operation soapAction="GetAccountSummaries" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="AccountService">
<port name="AccountPort" binding="tns:AccountBinding">
<soap:address
location="http://localhost:8080/myapp/services/account" />
</port>
</service>
</definitions>
Thanks.
Naresh