Я хочу знать, какое решение лучше для веб-сервиса Джерси-Остального. В некоторых случаях JAXB не может обрабатывать некоторые типы. Лучше ли использовать XStream?JAXB или Xstream на Джерси Restful application
ответ
Зависит от вашего прецедента - если вы считаете, что JAXB будет значительным ограничением, вы можете использовать XStream. Недавно Btw Jersey добавила поддержку MOXy, которая может помочь вам преодолеть некоторые угловые случаи в JAXB Reference impl в JDK.
Pro JAXB
- из функциональных возможностей коробки с Джерси
- возможность указать собственный JAXBContext
- стабильной; много испытаний/поддержка со стороны команды Джерси/JAXB
Con JAXB
- он не работает, как ожидается, в некоторых случаях угловых (Java/XML связывание имеет ограничения в связи с различным характером этих языков)
Pro XStream:
- вы, вероятно, имеют некоторый опыт работы с этой
Con XStream:
- вам необходимо реализовать поддержку для него (MessageBodyReaders/Писатели) в Джерси
Примечание: Я 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-времени и некоторых неизменяемых объектов домена:
- http://blog.bdoughan.com/2011/05/jaxb-and-joda-time-dates-and-times.html
- http://blog.bdoughan.com/2010/12/jaxb-and-immutable-objects.html
ли лучше использовать XStream?
Ниже приводится ссылка на запись в блоге я написал, где я отображенной ту же объектную модель для того же документа XML, используя как JAXB и XStream вы можете быть заинтересованы в:
Реализации JAXB, такие как MOXy, также содержат много расширений, которые вы найдете полезными, такие как отображение на основе XPath (@XmlPath
) и внешний картографический документ:
В качестве примера использования Moxy, как провайдер JAXB в Джерси см:
Благодарим вас за подробные разъяснения и ссылки на ссылки , Я попробую MOXy и надеюсь, что это будет правильный инструмент. – Lahniep
@ Lahniep - Если вам нужна помощь с MOXy, вы можете связаться со мной через мой блог: http://blog.bdoughan.com/p/contact_01.html –
- 1. Джерси Restful Web Service - MessageBodyProviderNotFoundException
- 2. Джерси 2 - JAXB
- 3. Джерси RESTful развертывание на сервере Tomcat 6
- 4. Разрешение JAXB и Джерси?
- 5. Возвращая ответ используя Джерси REStful веб-сервисы?
- 6. Джерси Restful зависимость версия
- 7. Джерси Restful API Validation
- 8. Джерси клиент звонит RESTful service
- 9. RESTful MVC application
- 10. Защита веб-сервисов RESTful (Джерси на Tomcat)
- 11. Назначение джерси-сервера, джерси-клиента, джерси-гризли в приложении RESTful
- 12. JAXB используя Джерси и Moxy
- 13. JAXB демаршалинг безуспешных использованием Джерси
- 14. Как JAXB/Джерси unmarshall имеет значение Boolean?
- 15. Единичное тестирование джерси Restful Services
- 16. Обработка ошибок в Джерси RESTful API
- 17. Java Restful Services - без JaxB
- 18. Java-Джерси, RESTful API и JSONP
- 19. Создание RESTful WebService без использования Джерси или любых других библиотек
- 20. Tomcat Запустите ошибку в веб-службы RESTful с использованием Джерси
- 21. Добавить данные (объект) в Джерси (Restful) Ответ на POST?
- 22. SOAP-обертка вокруг существующего сервиса Джерси RESTful
- 23. Ошибка Джерси REST/JAXB, отображение интерфейса
- 24. Задание контекста JAXB 2 в Джерси 1.17
- 25. Джерси JAXB json on Liberty Профиль
- 26. Джерси RESTful: Spring боб управление созданием
- 27. Как сопоставить два уровня элементов XML на один уровень в XStream или JAXB?
- 28. Включая нулевые элементы в выходе JSON API Джерси RESTful с JAXB
- 29. Использование пользовательского контекста JAXB с клиентом Джерси
- 30. Исключение при попытке использовать Джерси и JAXB
+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 –