是否可以为 resteasy 客户端注册一个自定义的 Jackson JSON 序列化程序?
我试过做类似的事情:
ResteasyClient client = new ResteasyClientBuilder()
.register(new CustomSerializer())
.build();
但是没有用。有什么想法吗?
最佳答案
您只能注册 JAX-RS 组件,例如 Providers或 Features . 您需要注册一个带有 ObjectMapper 的 Provider,该 ObjectMapper 带有一个已注册序列化程序的 Module。
ResteasyJacksonProvider resteasyJacksonProvider = new ResteasyJacksonProvider();
ObjectMapper mapper = new ObjectMapper();
SimpleModule myModule = new SimpleModule("myModule", new Version(1, 0, 0, null));
myModule.addSerializer(Custom.class, new CustomSerializer());
mapper.registerModule(myModule);
resteasyJacksonProvider.setMapper(mapper);
ResteasyClient client = new ResteasyClientBuilder().register(resteasyJacksonProvider).build();
请注意,此示例使用的是 org.codehaus.jackson
中的类。来自 com.fasterxml.jackson
的 API 看起来略有不同。
关于java - resteasy 客户端的自定义 Jackson 序列化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29012686/