JacksonConverter缺少getObjectMapper()方法

时间:2016-05-24 08:22:28

标签: java jackson restlet

我正在使用 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()

如何克服此编译错误?我很乐意申请和/或回应解决方案。

1 个答案:

答案 0 :(得分:0)

我使用的解决方案是以下一种方式添加JacksonConverter

        List<ConverterHelper> converters = Engine.getInstance().getRegisteredConverters();
        converters.add(new JacksonConverter());

另外,为了将SerializationInclusion设置为JsonSerialize.Inclusion.NON_NULL,我在我的资源中使用的每个响应类都使用了注释 @JsonInclude(JsonInclude.Include.NON_NULL)

我找不到更通用的解决方案(在应用程序级别),但这似乎工作正常。