Я работаю над веб-сервисом 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?
Ура!