首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javax.ws.rs.client.Invocation.Builder忽略未识别的属性?

如何使用javax.ws.rs.client.Invocation.Builder忽略未识别的属性?
EN

Stack Overflow用户
提问于 2021-01-11 18:10:13
回答 1查看 230关注 0票数 0

我已经建立了一个使用SSL的web客户端。

客户端被初始化如下:

代码语言:javascript
复制
SSLContext sc = SSLContext.getInstance("ssl");
        sc.init(null, noopTrustManager, null);
        
        this.client = ClientBuilder.newBuilder().
                sslContext(sc).
                build();

然后像下面这样初始化web目标:

代码语言:javascript
复制
this.webTarget = this.client.target(urlAddress);

调用生成器的初始化方式如下:

代码语言:javascript
复制
Builder request = this.webTarget.request();

但是,当--在适当设置标题之后--我尝试这样做:

代码语言:javascript
复制
request.get(InitiateTransferResponse.class);

我收到以下错误消息:

javax.ws.rs.client.ResponseProcessingException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:未识别字段“时间戳”( com.interaxa.ivr.visual.moa.service.model.InitiateTransferResponse),类未标记为可忽略)

是否有一种方法可以告诉构建器忽略所有未识别的属性?(我也打算将这个构建器用于其他web服务,如果我可以将它设置为永久忽略未知属性,而不管响应类是什么,那就太好了)。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-13 18:07:14

我找到了解决办法!

关键是替换行:request.get(InitiateTransferResponse.class);

根据这一守则:

代码语言:javascript
复制
        InitiateTransferResponse result;
        try {
            result = getMapper().readValue(response, InitiateTransferResponse.class);
        } 
        catch (IOException e) {
            ViewFactory.logError(e);
            result = null;
        }

其中getMapper()如下:

代码语言:javascript
复制
public ObjectMapper getMapper() {
        if (mapper == null){
            mapper = new ObjectMapper();
            mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
            mapper.configure(DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES, false);
            mapper.setSerializationInclusion(Inclusion.NON_NULL);
        }
        return mapper;
}

ObjectMapper是org.codehaus.jackson.map.ObjectMapper

这样,ObjectMapper就可以控制它允许的内容,而不是把这个决定留给生成器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65672325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档