【问题标题】:CXF - webservice endpoint has changed, WSDL has notCXF - Web 服务端点已更改,WSDL 未更改
【发布时间】:2013-07-21 19:33:27
【问题描述】:

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

他们现在更改了他们的网络服务,在响应中增加了 3 个字符串字段。 重新生成 java 类对我们来说有点返工,但是我们遇到了一个异常:

javax.xml.ws.soap.SOAPFaultException:解组错误:意外元素(newElement)

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

【问题讨论】:

    标签: soap cxf wsdl2java


    【解决方案1】:

    如果添加端点属性:

    “set-jaxb-validation-event-handler”为“假”

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

    意外元素(uri:“http://my.namespace.com”,本地:“myField”)。预期元素是

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

    【讨论】:

    • 我正面临这个问题。 Gribbler,有没有办法在验证时将命名空间添加到 JAXB?因为,我认为将其设置为 false,只跳过验证,而不是将对象设置为 null,这对我不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 2013-07-06
    • 2019-07-06
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多