【问题标题】:faultCode argument for createFault was passed NULLcreateFault 的 faultCode 参数被传递为 NULL
【发布时间】:2014-10-27 14:46:56
【问题描述】:

我已经使用 WSImport 工具生成了 WSDL 代理。

现在,当我使用生成的端口调用 webservice 方法时,出现以下异常。

java.lang.IllegalArgumentException: faultCode argument for createFault was passed NULL

有没有人注意到这个异常,因为我找不到关于这个异常的任何其他问题。

SOAP 响应

<soapenv:Fault>
   <soapenv:faultcode>soap:Client</soapenv:faultcode>
   <soapenv:faultstring>Given name with Parent ID is existing.Hence same cant be used again - Trans : TransName</soapenv:faultstring>
   <soapenv:detail>
      <NS1:Error xmlns:NS1="http://com.example.com/schemas/XYZ_error">
         <Error_type_code>11</Error_type_code>
         <Error_Type>Database Error</Error_Type>
         <Error_code/>
         <Error_text>Given name with Parent ID is existing.Hence same cant be used again</Error_text>
         <Backend_applid/>
         <Payload><![CDATA[]]></Payload>
      </NS1:Error>
   </soapenv:detail>
</soapenv:Fault>

【问题讨论】:

  • 这个异常告诉你将一个空值传递给 createFault,需要更多信息来帮助你。
  • 请找到soap响应,它有faultCode
  • 你在这方面有什么进展吗?我今天也遇到了同样的异常。
  • @csturtz 在下面查看我的答案..

标签: java jax-ws wsimport


【解决方案1】:

问题已解决

这是由于合同不匹配造成的,这意味着 Web 服务发送的响应 XML 与 WSDL 创建的合同不匹配。

为了解决这个问题,请检查您收到的响应 XML 是否与 Java 代码创建的合同具有相同的命名空间,并且响应 XML 元素是否与 Java 代码中的属性匹配。

【讨论】:

  • 看看stackoverflow.com/questions/29074099/… 这是一个非常相似的错误。在这种情况下,错误是由于 Fault 子元素造成的:faultcode、faultstring 和 detail 不需要命名空间。
猜你喜欢
  • 1970-01-01
  • 2022-06-11
  • 1970-01-01
  • 2017-06-12
  • 2018-11-10
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多