我们在我们的应用程序,结合了第三方SOAP Web服务。的WSDL使用SOAPUI工具,其中样本请求和响应工作的罚款。
当我们试图与Apache Axis的1.3,在这里我们试图WSDL2JAVA与WSDL整合。我们收到以下错误
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)在org.apache.axis.wsdl.gen.Parser $ WSDLRunnable.run(Parser.java:361)在java.lang.Thread.run(来源不明)
任何人都已经面临这个问题,并解决了吗?
我认为,是开放的这一个JIRA。
描述:
当你有一个肥皂1.2用肥皂故障结合,故障元件不正确地提取,从而导致错误
ERROR: Missing <soap:fault> element inFault "..." in operation "...", in binding ...
他们的临时建议是添加一行代码并重新编译轴1 ... Nahh。
就个人而言,我刚刚下载的WSDL文件(它是一个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已经产生。
我通过如下改变XML命名空间解决了这个问题:
更改此
的xmlns:SOAP12 = “http://schemas.xmlsoap.org/wsdl/soap12/”
至
的xmlns:SOAP12 = “http://schemas.xmlsoap.org/wsdl/soap/”
只有12在端部被去除。