Search code examples
soapwsdlwsdl2java

SOAP WSDL sequence definition - one argument or many?


Problem/Intro

I have not really used SOAP in very many years due to REST.

I have the following definition in a WSDL file:

<xs:complexType name="findByIdentifier">
    <xs:sequence>
      <xs:element name="arg0" type="xs:long"/>
    </xs:sequence>
  </xs:complexType>

The code method generated from WSDL2Java is

findByIdentifier(
        @WebParam(name = "arg0", targetNamespace = "")
        long arg0
    )

The requirements specify that I should submit an array of long.

I see also that maxOccurs and minOccurs are missing from the WSDL.

Question

How should I modify the WSDL file I have in my project in order to have a method generated that takes an array?

If I should not hack the WSDL should I do something else like a custom implementation via an extended class or a custom client implementation (defeats the purpose of generating code)?


Solution

  • The solution as proposed by the team leader was to use a loop since the WSDL and the actual webservice behavior show that an array is not supported for an argument.