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

问题描述 投票:1回答:1

我的服务正在使用肥皂服务。目标服务可以添加新字段,只要我们收到我们需要的所有字段,就不会中断我们的服务。我正在使用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]
java web-services cxf wsdl2java
1个回答
1
投票

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

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");

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

© www.soinside.com 2019 - 2024. All rights reserved.