Настройте Джерси / Джексон, чтобы НЕ использовать аннотацию поля @XmlElement для именования полей JSON

Я использую службу REST в Джерси. POJO ' s, которые представляют мои ресурсы, представляют собой аннотированные JAXB (XML) простые классы Java (они сгенерированы из определения схемы - поэтому у них есть аннотации).

Я хочу, чтобы Джерси / Джексон игнорировал XML-аннотации. Я выполнил эту настройку в своем файле web.xml (как упоминалось здесь ):

  
    com.sun.jersey.api.json.POJOMappingFeature
    true
  

Теперь я ожидал, что аннотация @XMLElement больше не будет использоваться для политики именования полей JSON.

Но глядя на это java field (member)

@XmlElement(name = "person", required = true)
protected List persons;

Я все еще получаю следующее представление JSON:

....,"person":[{"name":"FooBar", ....... (person without the 's')

Все остальные поля также получают свои имена JSON из аннотации @XmlElement, а не из имени поля Java.

Я хотел бы получить JSON вывод, как описано в примере Jackson Full Data Binding (POJO) .

Он отлично работает в таких простых тестах (с моими аннотированными классами XML):

http://www.themodestrubyist.com/2010/03/05/rails-3-plugins---part-2---writing-an-engine/

Однако я получаю сообщение об ошибке, когда пытается использовать драгоценный камень во вновь созданном приложении. Я получаю сообщение «Ошибка маршрутизации - неопределенный метод` sub 'для nil: NilClass »при попытке доступа к приложению.

Единственное, что я вижу в файле журнала, - это та же ошибка. Нет трассировки стека / трассировки отладки, поэтому трудно понять, откуда возникла ошибка. В идеале я хотел бы видеть трассировку стека «из драгоценного камня», но похоже, что rails не отлаживает ошибки, происходящие извне приложения?

Я использую rvm, ruby ​​1.9.2, rails 3.0.1.

Вот мой файл config / routes.rb из гема, хотя я не думаю, что это ошибка маршрутизации, как следует из сообщения отладки ..

Rails.application.routes.draw do
    resources :pictures, :controller => 'morph/pictures'
end

Есть предложения?

5
задан tshepang 18 October 2013 в 13:09
поделиться