Dan*_*lan 4 java jaxb jackson jersey-client jersey-1.0
我有一个类,我正在使用Jersey客户端进行反序列化.这个类有一个如下所示的方法:
public boolean isEmpty() {
return (code == null &&
label == null &&
codeSystem == null &&
codeSystemLabel == null &&
description == null &&
concept == null &&
alternateCode == null
);
Run Code Online (Sandbox Code Playgroud)
没有二传手.原样,这将抛出此异常:
com.sun.jersey.api.client.ClientHandlerException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "empty" (Class com.app.models.CodedElementModel), not marked as ignorable
at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@3b927d51; line: 1, column: 270] (through reference chain: com.app.models.LabOrderModel["code"]->com.app.models.CodedElementModel["empty"])
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这篇文章,事实证明我可以通过在CodedElementModel类中添加这个注释来解决这个问题:@JsonIgnoreProperties(ignoreUnknown = true).
问题是我有很多方法抛出这个异常.有没有办法配置Jersey客户端就像@JsonIgnoreProperties(ignoreUnknown = true)在每个类上设置一样,所以我不必手动注释它们?我不想通过手动添加此注释来更改~30个文件.如果有人在没有setter的情况下添加getter,这将在将来防止此类错误.
以下是我创建Jersey客户端的方法:
DefaultClientConfig clientConfig = new DefaultClientConfig();
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
Client client = Client.create(clientConfig);
Run Code Online (Sandbox Code Playgroud)
我觉得这clientConfig可能有一个设置来做到这一点,但我不知道如何找到它.
您需要通过实例化和配置JacksonJsonProviderJersey 来配置它Client.
泽西岛V2.x:
JacksonJsonProvider jacksonJsonProvider =
new JacksonJaxbJsonProvider()
.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
client.register(jacksonJsonProvider);
Run Code Online (Sandbox Code Playgroud)
泽西岛V1.x:
DefaultClientConfig clientConfig = new DefaultClientConfig();
JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().
configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
clientConfig.getSingletons().add(jacksonJsonProvider);
Run Code Online (Sandbox Code Playgroud)
值得注意的是,潜在的问题是你的JSON包含字段"空"......我假设它已经到了那里,因为你正在序列化相同的POJO.isEmpty()如果您实际上不希望它在JSON中更好,那么不会注释该序列被忽略的序列化吗?
| 归档时间: |
|
| 查看次数: |
7745 次 |
| 最近记录: |