6

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

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

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

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

4

2 回答 2

15

我相信有一个为此开放的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>

正如这里建议的那样。

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

于 2010-05-20T14:59:31.867 回答
1

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

改变这个

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

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

最后只删除了12 个

于 2019-02-08T20:24:01.923 回答