IWAB0399E从WSDL生成Java时出错:java.io.IOException:错误:缺少<soap:fault>元素inFault </soap:fault>

时间:2010-05-20 21:37:31

标签: java wcf web-services soap

我有一个供内部使用的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团队这样做,他们的工具可以理解更新的协议吗?

编辑:

我发现basicHttpBinding使用SOAP 1.1并放置预期的<soap:fault> 在WSDL中,wsHttpBinding放置<soap12:fault>(我猜是使用SOAP 1.2规范。)

我发现some suggestions using Axis instead of the IDE tool会产生更好的结果,我不确定我是否可以让Java团队购买。

1 个答案:

答案 0 :(得分:4)

我发现 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的一个很好的解释。