我正在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
我不太确定从哪里开始调试这个问题。
事实证明,我从webapp引用的实体被编译成一个JAR,而Tomcat没有重新加载它们。重启tomcat解决了这个问题。