杰克逊注释在Tomcat中被忽略但在JerseyTest中工作得很好

问题描述 投票:0回答:1

我正在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 

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

java tomcat jackson jersey
1个回答
0
投票

事实证明,我从webapp引用的实体被编译成一个JAR,而Tomcat没有重新加载它们。重启tomcat解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.