杰克逊注释在Tomcat中被忽略,但在JerseyTest中可以正常工作

时间:2019-04-29 08:53:48

标签: java tomcat jackson jersey

我正在Tomcat 7中运行Jersey 2.x应用程序。我正在使用具有所有正确依赖项的Jackson 2。

我用JerseyTest编写了一个基本测试来检查我的API。我的杰克逊注释在这里可以正常工作。但是,一旦将其部署到Tomcat中,我的Jackson注释都无法正常工作。

另一个有趣的事情是,当我在默认的Jersey ObjectMapper上注册自定义解串器时

private static ObjectMapper createDefaultMapper() {
    final ObjectMapper mapper = new ObjectMapper();
    final SimpleModule module = new SimpleModule();
    module.addDeserializer(MyEntity.class, new MyEntityDeserializer());
    mapper.enable(SerializationFeature.INDENT_OUTPUT);

    mapper.registerModule(module);
    return mapper;
}

解串器在Tomcat中拾取。只是带有注释而已。

我尝试过的注释是

@JsonCreator
@JsonDeserialize
@JsonSetter 

我不太确定从哪里开始调试此问题。

1 个答案:

答案 0 :(得分:0)

结果是,我从我的Web应用程序中引用的实体被编译成JAR,而Tomcat 重新加载了它们。重新启动tomcat解决了该问题。