如何在使用WebTarget时设置DeserializationProblemHandler?

时间:2015-06-21 21:10:55

标签: jersey

我想在使用WebTarget调用Restful服务时记录未知的传入JSON属性。返回值应为JSON。我正在考虑将DeserializationProblemHandler设置为我的ObjectMapper。但是在哪里以及如何设置呢?

AsyncTask

如果我有一个ObjectMapper的实例:

WebTarget tgt = ...;
DummyResult result = tgt.request()
    .post(Entity.entity(callParam, MediaType.APPLICATION_JSON_TYPE),
    DummyResult.class);

感谢您的任何意见。

1 个答案:

答案 0 :(得分:0)

我想出了这个,只是把这个大呼叫分开了。

javax.ws.rs.client.Invocation invocation = tgt.request()
    .buildPost(Entity.entity(callParam, MediaType.APPLICATION_JSON_TYPE));
String response = invocation.invoke(String.class);

// then use ObjectMapper to serialize
String result = om.readValue(response, DummyResult.class);

现在' MyDeserializationProblemHandler'将按名称和值记录所有未知字段,因此我可以通知呼叫者任何可能的错误。