Apache Axis WSDL2Java错误 - 缺少<soap:fault>元素

Pea*_*arl 5 wsdl2java soapfault

我们正在将第三方SOAP Web服务集成到我们的应用程序中.WSDL与SOAPUI工具一起使用,其中样本请求和响应工作正常.

当我们尝试与apache Axis 1.3集成时,我们尝试使用WSDL的WSDL2JAVA.我们收到了以下错误消息

java.io.IOException的:错误:缺少元件InFault已 "serviceFault" 在操作中 "serviceFault",在org.apache.axis在org.apache.axis.wsdl.symbolTable.SymbolTable.faultsFromSOAPFault(SymbolTable.java:2858)结合saveRegistration .wsdl.symbolTable.SymbolTable.populateBindings(SymbolTable.java:2549)在org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:744)在org.apache.axis.wsdl.symbolTable.SymbolTable.add (SymbolTable.java:543)在org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518)在org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495)在java.lang.Thread.run上的org.apache.axis.wsdl.gen.Parser $ WSDLRunnable.run(Parser.java:361)(未知来源)

有人已经遇到过这个问题并解决了吗

ian*_*cho 14

我相信有一个JIRA对这个开放.

描述:

当您使用soap 1.2绑定soap soap时,fault元素未正确提取,从而导致错误

 ERROR: Missing <soap:fault> element inFault "..." in operation "...", in binding ...
Run Code Online (Sandbox Code Playgroud)

他们的临时建议是添加一行代码并重新编译Axis1 ... Nahh.

就个人而言,我刚刚下载了wsdl文件(它是Axis 2服务,我有一个Axis 1.5客户端)并编辑了以下所有行的命名空间:

     <wsdl:fault name="Exception">
        <soap12:fault use="literal" name="Exception"/>
     </wsdl:fault>
Run Code Online (Sandbox Code Playgroud)

至:

     <wsdl:fault name="Exception">
        <soap:fault use="literal" name="Exception"/>
     </wsdl:fault>
Run Code Online (Sandbox Code Playgroud)

如此处所示.

但是,升级到Axis2是最好的长期解决方案.解决此问题后,我发现WSDL2JAVA生成的代码中存在更多错误.