【问题标题】:Apache Axis WSDL2Java error - Missing <soap:fault> elementApache Axis WSDL2Java 错误 - 缺少 <soap:fault> 元素
【发布时间】:2011-01-09 08:00:38
【问题描述】:

我们正在我们的应用程序中集成第三方 SOAP Web 服务。 WSDL 与 SOAPUI 工具一起使用,示例请求和响应运行良好。

当我们尝试与 Apache Axis 1.3 集成时,我们尝试了 WSDL2JAVA 与 WSDL。我们收到以下错误

java.io.IOException:错误:在操作“serviceFault”中缺少元素 inFault “serviceFault”,在绑定 saveRegistration 在 org.apache.axis.wsdl.symbolTable.SymbolTable.faultsFromSOAPFault(SymbolTable.java:2858) 在 org.apache.axis.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) 在 org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361) 在 java.lang.Thread.run(Unknown Source)

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

【问题讨论】:

    标签: wsdl2java soapfault


    【解决方案1】:

    我相信有一个JIRA 为这个开放。

    说明:

    当你有一个soap 1.2绑定soap fault时,没有正确提取fault元素,导致错误

     ERROR: Missing <soap:fault> element inFault "..." in operation "...", in binding ...
    

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

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

         <wsdl:fault name="Exception">
            <soap12:fault use="literal" name="Exception"/>
         </wsdl:fault>
    

    到:

         <wsdl:fault name="Exception">
            <soap:fault use="literal" name="Exception"/>
         </wsdl:fault>
    

    按照here的建议。

    不过,升级到 Axis2 是最好的长期解决方案。解决了这个问题后,我发现 WSDL2JAVA 生成的代码中还有更多错误。

    【讨论】:

    • 谢谢。以下为我工作&lt;wsdl:fault name="Exception"&gt; &lt;soap11:fault use="literal" name="Exception"/&gt; &lt;/wsdl:fault&gt;
    • 这样它会给出一个 classCastException,因为它声明不能将 Throwable 转换为这个异常
    【解决方案2】:

    我通过如下更改 XML 命名空间解决了这个问题:

    改变这个

    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"

    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap/"

    仅删除末尾的 12

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2012-01-06
      • 2013-11-26
      • 1970-01-01
      相关资源
      最近更新 更多