When I use the following WSDL file, I get this error,
even though the WSDL is validated by Cape Clear WSDL
editor, and I see the name attribute is there. 

java.io.IOException: ERROR: Fault is missing a name=
attribute in operation "MyOperation", in binding
{http://MyService}rpc-encoded.        at
org.apache.axis.wsdl.symbolTable.SymbolTable.faultsFromSOAPFault(Symb
olTable.java:1988)        at
org.apache.axis.wsdl.symbolTable.SymbolTable.populateBindings(SymbolT
able.java:1801)        at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:577)        at
org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:421
)        at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:408)        at
org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:393)        at
org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:245)
        at java.lang.Thread.run(Thread.java:479)

The WSDL file is attadched, but here is the relvant
section:

<binding name="rpc-encoded" type="tns:MyPort">
    <soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="MyOperation">
      <soap:operation soapAction="MyOperation"/>
      <input>
        <soap:body use="encoded"
namespace="http://MyService";
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded"
namespace="http://MyService";
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
      <fault>
        <soap:fault  name="tns:MyF"  use="encoded"
namespace="http://MyService";
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
/>
      </fault>
    </operation>
</binding>


I am declaring the name attribute here, as you can
see. But with Axis 1.1 I get the above error. It runs
fine with Axis 1.0, which, I believe ignores the name
attribute in a soap fault declaration.

Any ideas what I am missing?

Thanks,
Shantanu Sen
<?xml version="1.0" ?>

<definitions name="http://MyService";
             targetNamespace="http://MyService";
             xmlns:tns="http://MyService";
             xmlns:typens="http://MyService";
             xmlns:xsd="http://www.w3.org/2001/XMLSchema";
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
             xmlns="http://schemas.xmlsoap.org/wsdl/";>

  <!-- type defs -->

  <!-- message declns -->
  <message name="MyRequest">
    <part name="subject" type="xsd:string"/>
  </message>

  <message name="MyResponse">
    <part name="confirmation" type="xsd:string"/>
  </message> 

  <message name="MyException">
    <part name="exception" type="xsd:string"/>
  </message>

  <!-- port type declns -->
  <portType name="MyPort">
    <operation name="MyOperation">
      <input message="tns:MyRequest"/>
      <output message="tns:MyResponse"/>
      <fault name="MyF" message="tns:MyException"/>
    </operation>
  </portType>

  <!-- binding declns -->
  <binding name="rpc-encoded" type="tns:MyPort">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="MyOperation">
      <soap:operation soapAction="MyOperation"/>
      <input>
        <soap:body use="encoded" namespace="http://MyService"; encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded" namespace="http://MyService"; encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
      <fault>
        <soap:fault  name="tns:MyF"  use="encoded" namespace="http://MyService"; encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />
      </fault>
    </operation>
  </binding>

  <!-- service decln -->
  <service name="MyProvider">
    <port name="MyPort" binding="tns:rpc-encoded">
      <soap:address location="http://localhost:8084/webservice/Test//Web+Input+Proxy"/>
    </port>
 </service>

</definitions>

Reply via email to