CXF - webservice端点已更改,WSDL尚未更改

时间:2013-07-22 21:59:57

标签: soap cxf wsdl2java

我的应用程序使用CXF WSDL2JAVA从客户端提供的WSDL生成Java类。

他们现在已经将他们的web服务更改为在响应中有3个额外的字符串字段。 对我们来说,重新生成java类会有一些改变,但我们得到了一个例外:

javax.xml.ws.soap.SOAPFaultException:Unmarshalling Error:意外元素(newElement)

有没有办法让CXF忽略响应中的额外元素?

1 个答案:

答案 0 :(得分:1)

如果添加端点属性:

“set-jaxb-validation-event-handler”改为“false”

然后CXF不会将事件处理程序添加到JAXB unmarshaller中,并且会以静默方式忽略意外的元素。您需要确保消息的其余部分完全正确,但如果消息不正确,您将不会收到任何错误或任何内容。例如,常见的事情是当JAXB期望不合格的元素时,有人会发送限定元素。如果不设置处理程序,对象中的所有字段最终都将为“null”。使用处理程序,您将收到如下消息:

  

意外元素(uri:“http://my.namespace.com”,local:“myField”)。预期元素是< {} myField>

所以你可以看到命名空间限定是原因。