Примечания Джексона игнорируются в Tomcat, но отлично работают в JerseyTest - PullRequest
0 голосов
/ 29 апреля 2019

Я использую приложение Jersey 2.x в Tomcat 7. Я использую Jackson 2 со всеми правильными зависимостями.

Я написал базовый тест с JerseyTest, чтобы проверить мой API. Мои аннотации Джексона там отлично работают. Однако, как только я разверну его в Tomcat, ни одна из моих аннотаций Джексона не сработает.

Еще одна интересная вещь заключается в том, что при регистрации пользовательского десериализатора на Джерси по умолчанию 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 голосов
/ 29 апреля 2019

Оказывается, сущности, на которые я ссылался из моего веб-приложения, компилировались в JAR-файл, который не был перезагружен Tomcat.Перезапуск tomcat решил проблему.

...