我有一个供内部使用的 WCF 4.0 服务。另一个团队正尝试在 Java 中使用它。
IWAB0399E Error in generating Java from WSDL: java.io.IOException:
ERROR: Missing <soap:fault> element inFault "PasswordReuseFaultFault" ...
一个消息来源表明它可能是一个 Soap 1.1 vs. Soap 1.2 issue
确实是我的 WCF 生成了 WSDL
<wsdl:fault name="PasswordReuseFaultFault">
<wsp:PolicyReference URI="#blah_blah_blah_PasswordReuseFaultFault_Fault"/>
<soap12:fault name="PasswordReuseFaultFault" use="literal"/>
</wsdl:fault>
注意 <soap12:fault>
而不是预期的 <soap:fault>
我很确定这就是问题的原因。
- 如何让 WCF 生成 soap 1.1 WSDL?
或
- 我应该告诉 Java 团队做什么,以便他们的工具能够理解更新的协议(protocol)?
编辑:
我发现 basicHttpBinding 使用 SOAP 1.1 并放置预期的 <soap:fault>
在 WSDL 中,wsHttpBinding 放置 <soap12:fault>
(我猜是使用 SOAP 1.2 规范。)
我找到了 some suggestions那using Axis instead of the IDE tool会产生更好的结果,我不确定我是否能让 Java 团队接受它。
最佳答案
我发现 AXIS2 可以很好地处理标签。 AXIS2 requires very minimal additional set-up to the eclipse IDE .我将尝试让 Java 人员利用它。
这里很好地解释了making both SOAP 1.1 and SOAP 1.2 available for a WCF service .
关于java - IWAB0399E 从 WSDL 生成 Java 时出错 : java. io.IOException:错误:缺少 <soap:fault> 元素 inFault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2878055/