2012-01-04 5 views

ответ

3

Зависит от вашего прецедента - если вы считаете, что JAXB будет значительным ограничением, вы можете использовать XStream. Недавно Btw Jersey добавила поддержку MOXy, которая может помочь вам преодолеть некоторые угловые случаи в JAXB Reference impl в JDK.

Pro JAXB

  • из функциональных возможностей коробки с Джерси
  • возможность указать собственный JAXBContext
  • стабильной; много испытаний/поддержка со стороны команды Джерси/JAXB

Con JAXB

  • он не работает, как ожидается, в некоторых случаях угловых (Java/XML связывание имеет ограничения в связи с различным характером этих языков)

Pro XStream:

  • вы, вероятно, имеют некоторый опыт работы с этой

Con XStream:

  • вам необходимо реализовать поддержку для него (MessageBodyReaders/Писатели) в Джерси
+1

+1 для Moxy. Объявление о том, что Джерси добавило поддержку MOXy, означает, что теперь они используют MOXy в наборах тестов. Поскольку MOXy является стандартным поставщиком JAXB, вы также можете использовать его в предыдущих выпусках GlassFish. Пример использования MOXy с GlassFish 3.0.1 см. По адресу: http://blog.bdoughan.com/2010/08/creating-restful-web-service-part-35.html –

8

Примечание: Я EclipseLink JAXB (MOXy) свинца и членом JAXB (JSR-222) группа экспертов.

Я хочу знать, какое решение лучше для веб-службы Jersey Rest.

JAXB (JSR-222) является обязательным слой по умолчанию для JAX-RS. Это означает, что если у вас есть следующий метод, JAXB будет автоматически использоваться для преобразования возвращаемого типа (Customer) в XML (и JSON при использовании Джерси).

@GET 
@Produces(MediaType.APPLICATION_XML) 
@Path("{id}") 
public Customer read(@PathParam("id") long id) { 
    return entityManager.find(Customer.class, id); 
} 

Если вам нужно больше контроля над JAXBContext вы можете использовать механизм JAX-RS под названием ContextResolver:

В некоторых случаях JAXB не в состоянии справиться с некоторые виды

JAXB может обрабатывать все типы по умолчанию или с использованием XmlAdapter.Ниже приведены некоторые примеры, где XmlAdapter используется с типами Joda-времени и некоторых неизменяемых объектов домена:

ли лучше использовать XStream?

Ниже приводится ссылка на запись в блоге я написал, где я отображенной ту же объектную модель для того же документа XML, используя как JAXB и XStream вы можете быть заинтересованы в:

Реализации JAXB, такие как MOXy, также содержат много расширений, которые вы найдете полезными, такие как отображение на основе XPath (@XmlPath) и внешний картографический документ:

В качестве примера использования Moxy, как провайдер JAXB в Джерси см:

+0

Благодарим вас за подробные разъяснения и ссылки на ссылки , Я попробую MOXy и надеюсь, что это будет правильный инструмент. – Lahniep

+0

@ Lahniep - Если вам нужна помощь с MOXy, вы можете связаться со мной через мой блог: http://blog.bdoughan.com/p/contact_01.html –

Смежные вопросы