If I have a Java class that looks like this:
public class ArrayEcho {
public Object[] echoArray (Object[] a)
{
return a;
}
}
The WSDL we generate looks like this:
<types>
<schema targetNamespace="http://schemas.xmlsoap.org/soap/encoding/"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="Array" nillable="true" type="SOAP-ENC:Array"/>
</schema>
</types>
<wsdl:message name="echoArrayRequest">
<wsdl:part name="a" type="SOAP-ENC:Array"/>
</wsdl:message>
<wsdl:message name="echoArrayResponse">
<wsdl:part name="return" type="SOAP-ENC:Array"/>
</wsdl:message>
Is this valid WSDL?
.NET wsdl.exe reports:
-------------------------------------
Schema validation warning: Type 'http://schemas.xmlsoap.org/soap/encoding/:Array' is
not declared.
Warning: Schema could not be validated. Class generation may fail or may produce
incorrect results.
Error: Unable to import binding 'ArrayEchoSoapBinding' from namespace
'http://localhost:8080/ArrayEcho.jws'.
- Unable to import operation 'echoArray'.
- The datatype 'Array' is missing.
--------------------------------------------
But our tool correctly generates the stub:
public java.lang.Object[] echoArray(java.lang.Object[] a)
Does anyone (Rich?) who understands the WSDL we generate for Arrays have any insight
on this? Are generating (and parsing) incorrect WSDL or do we understand
SOAP-ENC:Array and .NET just doesn't?
--
Tom Jordahl
Macromedia Server Development