我正在使用 Restlet 版 2.1.7 这是我的应用类
public final class MyApplication extends Application {
@Override
public Restlet createInboundRoot() {
Router router = (Router)super.createInboundRoot();
.
.
.
List<ConverterHelper> converters = Engine.getInstance().getRegisteredConverters();
JacksonConverter jacksonConverter = (JacksonConverter)converters.get(2);
SerializationConfig serializationConfig = jacksonConverter.getObjectMapper().getSerializationConfig();
serializationConfig.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
return router;
}
}
现在我正在尝试升级到 Restlet 版本 2.3.4 ,我收到下一行的编译错误:
SerializationConfig serializationConfig = jacksonConverter.getObjectMapper().getSerializationConfig();
编译错误是 JacksonConverter 不再有方法 getObjectMapper()
如何克服此编译错误?我很乐意申请和/或回应解决方案。
答案 0 :(得分:0)
我使用的解决方案是以下一种方式添加JacksonConverter
:
List<ConverterHelper> converters = Engine.getInstance().getRegisteredConverters();
converters.add(new JacksonConverter());
另外,为了将SerializationInclusion
设置为JsonSerialize.Inclusion.NON_NULL
,我在我的资源中使用的每个响应类都使用了注释 @JsonInclude(JsonInclude.Include.NON_NULL)
。
我找不到更通用的解决方案(在应用程序级别),但这似乎工作正常。