This is not a question on Axis, but rather a problem that I'm facing while
running the WS-I test tool on my doc/literal Web Services. I have
doc/literal Web Services with some operations whose return type is void.
The WSDL looks like:
<message name="Request">
<part name="input" element="......"/>
</message>
<message name="Response"/>
<portType name="....">
<operation name=".....">
<input message="mxws:Request"/>
<output message="mxws:Response"/>
</operation>
</portType>
The output message in the WSDL has no parts. I believe this is the correct
way (as per WS-I) of defining operations whose input and/or output is void.
The SOAP response on the wire has an empty SOAP body, which also seems
correct:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body/>
</soapenv:Envelope>
The WS-I Analyzer however reports the following error:
Assertion: WSI1013
Result: Failed
Failue Message: The content of the response message did not match the
wsdl:message definition. The order of parts in soap:body does not match
the order of wsdl:partS in wsdl:message, or it has a doc-lit binding but
the child element of soap:body is not an instance of the global element
declaration referenced by the corresponding wsdl:part, or it has an
rpc-lit binding but no wrapper element.
Is this a valid error or a bug in the WS-I testing tool that needs to be
reported? Has anyone seen this before?
Thanks,
Junaid