gpt4 book ai didi

java - 如何配置 CXF 不担心未知元素?

转载 作者:行者123 更新时间:2023-12-05 01:43:29 25 4
gpt4 key购买 nike

我的服务正在使用 soap 服务。目标服务可以添加新的字段,只要我们收到我们需要的所有字段,这些字段就不会破坏我们的服务。我正在使用 CXF 从 WSDL 生成 Java 代码,它会在发现新字段时中断。是否可以将 CXF 配置为忽略新字段?

错误是这样的

org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"http://www.a.com/sed/b/products/2014/03/types", local:"BidOnly"). Expected elements are <{http://www.a.com/sed/b/products/2014/03/types}SaleTeam>,
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:905) ~[cxf-rt-databinding-jaxb-3.2.0.jar:3.2.0]
at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:711) ~[cxf-rt-databinding-jaxb-3.2.0.jar:3.2.0]
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:172) ~[cxf-rt-databinding-jaxb-3.2.0.jar:3.2.0]

最佳答案

我试图解决同样的问题并偶然发现了这个问题:

CXF - webservice endpoint has changed, WSDL has not

显然,如果您将“set-jaxb-validation-event-handler”设置为“false”,它会禁用对解码器的验证。所以在我的代码中我添加了这个:

import org.apache.cxf.jaxws.EndpointImpl;

...

EndpointImpl endpoint = new EndpointImpl(...);
endpoint.getProperties().put("set-jaxb-validation-event-handler", "false");

我知道我在回答一个老问题,但也许它对某些人有用。

关于java - 如何配置 CXF 不担心未知元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49255376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com