Hi all, I've been staring at the following piece of WSDL for half a day now. This is a WSDL file that *is* accepted by Apache AXIS, but rejected by JWSDP. And I want to know why. I know for sure it has something to do with the faults found in HelloWorldExceptionMessage. JWSDP gives this error:
[wscompile] in message "HelloWorldExceptionMessage", part "helloWorldException" must specify a "type" attribute I *know* I can fix it by refering to a type instead of to an element, but I want to know *why* this is required. Both the WSDL specs and WS-I do not provide a lot of help here. Any help is appreciated. <?xml version="1.0" encoding="UTF-8"?> <!-- This WSDL file defines message part HelloWorldExceptionMessage, containing a single part refering to the ns2:HelloWorldException element. AXIS accepts this. JWSDP doesn't accept it. --> <definitions name="HelloWorldService" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://agilejava.com/hw/20040226/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://agilejava.com/hw/20040226/" xmlns:ns2="http://agilejava.com/types/20040226/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://agilejava.com/types/20040226/"> <element name="HelloWorldException" type="xsd:string"/> </schema> </types> <message name="HelloRequest"> <part name="requestor" type="xsd:string"/> </message> <message name="HelloResponse"> <part name="message" type="xsd:string"/> </message> <message name="HelloWorldExceptionMessage"> <part name="helloWorldException" element="ns2:HelloWorldException"/> </message> <portType name="HelloWorldPortType"> <operation name="helloWorld"> <input message="tns:HelloRequest"/> <output message="tns:HelloResponse"/> <fault name="helloWorldException" message="tns:HelloWorldExceptionMessage"/> </operation> </portType> <binding name="HelloWorldBinding" type="tns:HelloWorldPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="helloWorld"> <soap:operation soapAction=""/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://agilejava.com/hw/20040226/" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://agilejava.com/hw/20040226/" use="encoded"/> </output> <fault name="helloWorldException"> <soap:fault name="helloWorldException" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://agilejava.com/hw/20040226/" use="encoded"/> </fault> </operation> </binding> <service name="HelloWorldService"> <port name="HelloWorldPort" binding="tns:HelloWorldBinding"> <soap:address location="http://agilejava.com/hw/20040226"/> </port> </service> </definitions>
