Tomcat не правильно использует JAXB для сортировки JSON? - PullRequest
3 голосов
/ 19 октября 2011

Я работаю над веб-сервисом RESTful, используя Jersey v1.9.1.Некоторые методы возвращают JSON.Когда я хочу Отладить мое приложение, я запускаю его на сервере-гризли, в противном случае для производство я создаю файл войны и помещаю его в установку TomCat v7.Все мои проекты - это проекты Maven2.

Теперь я заметил, что для метода, который возвращает List<CustomObj>, где CustomObj имеет соответствующие аннотации JAXB, то есть @XmlRootElement(name="CustomObj"), и getter / setters для всех соответствующих членов:

  • Используя гризли , я получаю что-то вроде {"CustomObj":[{<fields-of-customObj>},{<fields-of-customObj>},{<fields-of-customObj>}]} (когда список содержит 3 элемента).Разбор этого с GSON работает нормально.
  • Использование TomCat , однако, я получаю это: [{<fields-of-customObj>},{<fields-of-customObj>},{<fields-of-customObj>}] -> так что, как вы можете видеть, "root" как-то отсутствует

У меня сложилось впечатление, что модуль jersey-json (который я включил в мои зависимости Maven2) вообще не используется в TomCat, даже если их следует использовать (они точно используются в Grizzly).Кроме того, создание собственного @Provider для ContextResolver<JAXBContext> , как описано здесь , работает только гризли, в TomCat метод getContext() никогда не будет вызываться.

Есть ли что-нибудь, что мне нужнорассмотреть с TomCat?

Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...