Разница между JAX-WS, Axis2 и CXF

В чем разница между:

  1. JAX-WS
  2. Axis2
  3. CXF

Все три могут использоваться для создания веб-сервисов на Java.
Насколько я знаю, JAX-WS является спецификацией, а Axis2 и CXF - реализациями, но в Java 1.6 есть реализация JAX-WS, если я не неправильно.

Итак, можно ли использовать Java 1.6 для разработки веб-сервисов JAX-WS без использования Axis2 или CXF? Тогда в чем польза Axis2, CXF?


person Maverick Riz    schedule 19.07.2012    source источник


Ответы (4)


Реализация JAX-WS, встроенная в JDK, на самом деле является всего лишь базовым мыльным материалом. Если вам нужны какие-либо более сложные вещи WS- *, такие как WS-Security, WS-RM, WS-Policy и т. Д., Вам необходимо использовать одну из альтернатив, например CXF, Metro или Axis2. Это также может зависеть от того, с чем вы пытаетесь интегрироваться. Например, CXF имеет первоклассную поддержку Spring, а также очень хорошую поддержку OSGi.

В CXF есть и другие вещи, помимо JAX-WS. Он также имеет совместимую реализацию JAX-RS и очень хорошо поддерживает предоставление услуг как REST, так и SOAP. Имеет реализацию SOAP / JMS, совместимую с W3C, если требуется такой тип вещей. По сути, многие вещи, недоступные из in-jdk JAX-WS impl.

Также см:

Разница между Apache CXF и Axis

person Daniel Kulp    schedule 19.07.2012
comment
Спасибо, очень помогает. Итак, для реализации основных веб-сервисов я могу просто использовать java 1.6. И была ли это реализация jax-ws в java 1.5? Или он был добавлен после 1.6? Если мне нужны дополнительные функции, я могу использовать CXF? - person Maverick Riz; 19.07.2012
comment
Он был добавлен в 1.6. Если вам нужна поддержка версии 1.5, вам нужно будет загрузить CXF или ссылку на JAX-WS или что-то подобное. - person Daniel Kulp; 19.07.2012
comment
И по большей части, если вы начнете с in-jdk JAX-WS impl, вы можете в любой момент использовать CXF, и он все равно будет работать. - person Daniel Kulp; 19.07.2012
comment
Я немного сомневаюсь. Разве Metro - реализация JAX-WS не встроена в JDK? Или Metro более сложна, чем реализация JAX-WS, встроенная в JDK? - person Dexter; 31.12.2016

Суммируя.

WSDL WS- * не зависят от языка.

JAX-WS - это стандарт Java для создания веб-сервисов.

Apache CXF и Apache Axis 2 - это две реализации JAX-WS. Они также предлагают реализации JAX-RS, чтобы вы могли создавать сервисы Restful.

CXF лучше интегрируется со Spring и Camel (camel-cxf). А у Axis 2 вроде нет активного релиза.

person chenrui    schedule 02.05.2014

Я обнаружил, что с CXF - интеграция со Spring очень проста. Кроме того, он предоставляет различные функции, такие как:

  1. Настройка функций ведения журнала
  2. Входящий и исходящий перехватчик
  3. Безопасность на уровне приложений
  4. Простая обработка исключений с использованием настраиваемой ошибки.

Для получения более подробной информации, пожалуйста, перейдите по этой ссылке:

http://predic8.com/axis2-cxf-jax-ws-comparison.htm

http://www.ibm.com/developerworks/java/library/j-jws11/

И, я прочитал ссылки выше, это полезно для меня. Надеюсь, это сработает и для вас.

Спасибо !

person puru    schedule 11.02.2014

Организация веб-сервисов дает некоторые рекомендации, например, BP (базовый профиль) 1.0 и BP (базовый профиль) 1.1. Основываясь на руководящих принципах, люди выпускают спецификацию на всех языках (Java / .Net) с реализацией по умолчанию В java Базой на спецификации BP 1.0 является JAX-RPC, а спецификация 1.0 - это JAX-WS

Реализация JAX-WS по умолчанию - RI (эталонная реализация). На основе требований / выбора мы можем изменить реализацию (RI / AXIS-2 / CXF)

Когда мы используем java 1.6, этот случай в JDK уже доступен, поэтому никакой другой jar не требуется. Если вы хотите использовать другую реализацию, в этом случае требуется конкретный jar-файл реализации.

Axis-2 и CXF исходят от Apache

person Abhijit Patra    schedule 14.06.2017