我正在使用Jersey JAX- RS客户端(2.0版)。我知道它正在使用Jackson的ObjectMapper生成和解析JSON。我想使用同一对象为某些Java类生成JSON,以便可以将它们写入日志。
我知道我可以创建一个ObjectMapper的新实例,但是我希望请求Jersey Client给我一个有关它正在使用的实例的引用。我怎样才能做到这一点?Jersey 2.0知道Jackson,因为它包含一个JacksonFeature类,该类首先用于配置Jackson功能。
我通过添加以下静态成员来解决此问题:
private static JacksonJsonProvider jackson_json_provider = new JacksonJaxbJsonProvider() .configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false) .configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false); private static ObjectMapper object_mapper = jackson_json_provider.locateMapper( Object.class, MediaType.APPLICATION_JSON_TYPE); private static Client client = ClientBuilder.newClient().register(jackson_json_provider);
请注意,第二个声明并不需要仅用于配置FAIL_ON_UNKNOWN_PROPERTIES或FAIL_ON_EMPTY_BEANS; 我object_mapper出于其他一些原因使用。
FAIL_ON_UNKNOWN_PROPERTIES
FAIL_ON_EMPTY_BEANS
object_mapper