Какой правильный выбор для меня для создания веб-сервиса с использованием Axis2 - AXIOM, JAXB, ADB или XMLBeans
Axis2 поддерживает создание веб-служб с использованием AXIOM, JAXB, ADB и XMLBeans. Я новичок в этой области разработки веб-сервисов и хочу создать веб-сервис с использованием Axis2. Веб-сервис будет очень простым, но я ожидаю, что он будет меняться довольно часто. Мне показалось, что AXIOM хорош, поскольку он позволяет вам указать ваши требования к сервису в файле service.xml, а затем создает его для вас. Поэтому я подумал, что это облегчит мою жизнь, так как в будущем для любых изменений в моем веб-сервисе мне нужно всего лишь изменить файл service.xml и некоторый код в виде классов.java для веб-сервисов. Но и у других методов есть свои преимущества. Учитывая мои требования, можете ли вы сказать мне, какой метод я должен использовать при создании веб-службы? Примечание. Я хотел бы расширить поддержку веб-службы REST и SOAP.
1 ответ
Я начну с признания своей предвзятости в том, что я руководлю реализацией MOXy JAXB, что подводит меня к моей первой мысли.
1. Есть несколько реализаций JAXB
Поскольку JAXB является стандартом ( JSR-222), существует несколько реализаций: Metro (эталонная реализация), EclipseLink MOXy, Apache JaxMe и т. Д. Если вы столкнулись с ошибкой show stopper в одной реализации, вы можете попробовать другую.
2. JAXB - это уровень связывания по умолчанию для JAX-RS (веб-службы RESTful) и JAX-WS (веб-службы SOAP).
JAXB был разработан совместно с JAX-WS, а JAX-RS был написан для использования JAXB. JAXB поддерживается на всех серверах приложений Java EE 5 и Java EE 6.
3. JAXB поддерживает функции Java 5, такие как дженерики и перечисления
Это может иметь большое значение для вас, но JAXB поддерживает дженерики и перечисления, в то время как XML Beans - нет.
4. Индивидуальные реализации имеют очень полезные расширения
Например, MOXy имеет расширения для отображения на основе XPath, файл метаданных XML и расширения для отображения сущностей JPA: