Вопрос

Я занимаюсь исследованием/сравнением CXF и Spring-WS для веб-сервисов?Мне нужно действовать как поставщик и потребитель WS.Короче говоря, мне сказали, что Spring-WS более настраиваемый, но CXF легче запустить и запустить.Этот вопрос субъективен, но поможет мне направить мои исследования.

  • Какой у вас опыт работы с любой из этих платформ?
  • Сталкивались ли вы с какими-либо подводными камнями при использовании любой из фреймворков?
  • Обнаружили ли вы какие-либо полезные функции, предоставляемые одним из них, которые, возможно, не предусмотрены другим?
Это было полезно?

Решение

Я думаю, что самая большая разница в том, что Spring-WS только «контракт первым», хотя я считаю, что CXF обычно «контракт последним».

http://static.springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html

Contract-last начинается с кода Java, поэтому обычно с ним легче начать.

Однако создаваемый им WSDL имеет тенденцию быть более хрупким.

Другие советы

Об Apache CXF:

  • CXF поддерживает несколько стандартов, включая SOAP, базовый профиль WSI, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy и WS-SecureConversation.
  • Apache CXF предлагает подходы «сначала контракт» (начиная с Java) и «сначала контракт» (начиная с WSDL).
  • Apache CXF реализует JAX-WS и JAX-RS.

О Spring WS:

  • Spring WS предлагает «только» контракт в первую очередь, начиная со схемы XSD.
  • Spring WS поддерживает SOAP, WS-Security, WS-адресацию.

Итак, в конце концов, я рассматриваю Spring WS как минимальный веб-сервисов, но учтите, что он (на мой взгляд) не имеет никаких преимуществ перед Apache CXF (который очень хорошо интегрируется со Spring).Между ними я бы выбрал Apache CXF.

CXF никоим образом не мешает вам начать с контракта (WSDL).Я использовал оба этих продукта для создания веб-сервиса.

В CXF я использовал Maven и плагин Maven, вызывая метод wsimport цель создать SEI (интерфейс), который я затем реализовал.После реализации интерфейса, содержащего фактическую логику сервиса, и настройки реализации моего компонента. beans.xml, Затем я позволил Maven упаковать его в военный файл для развертывания.Все упражнение не могло быть проще.

Я не думаю, что Spring-WS предлагает какие-либо преимущества, которые перевешивают отсутствие JAX-WS.CXF уже позволяет использовать Spring для подключения ваших bean-компонентов, а также имеет полную реализацию JAX-WS.

У нас есть опыт работы с CXF и это предшественник XFire и я могу рекомендовать его как надежный, быстрый (создание и выполнение WS) и надежный фреймворк.

Что касается проблем, с которыми вы можете столкнуться при использовании CXF, см. мой пост. https://stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205И я согласен с Инструментарий, что самая большая разница между фреймворками идеологическая:какой первый код (т.интерфейс) или контракт (т.е.всдл).Подробности смотрите здесь:

Апач CXF:

Ключевые положительные стороны:

❶ Самый широко используемый стандарт веб-сервисов сейчас;Улучшение по сравнению с AXIS2, который теперь постепенно заменяется Apache CXF.

❷ Интуитивно понятный и простой в использовании (требуется меньше кода по сравнению с AXIS2)

❸ Четкое отделение интерфейсов, таких как JAX-WS, от основного кода.

❹ Полная совместимость с JAX-WS, JAX-RS и другими

❺ Лучшая производительность во всех доступных платформах с минимальными затратами на вычисления.

❻ Поддерживает широкий спектр моделей внешнего интерфейса.

❼ Поддерживает JAX-WS и JAX-RS (для Restful Services).

❽ Поддерживает JBI и SDO (не поддерживается в AXIS2)

❾ Совместимость с Spring Framework.

Ключевые проблемы:

❶ Пока не поддерживает оркестровку и транзакции WS.

❷ Пока не поддерживает WSDL 2.0.

Весна ВС:

Ключевые положительные стороны:

❶ Лучше всего с точки зрения поддержки подхода к разработке веб-сервисов на основе контракта.

❷ Обеспечивает соблюдение стандартов и лучших практик посредством ограничений структуры (выхода из этого нет, а значит, и ограничений)

❸ Поддерживает Spring Annotations, а также JAX-WS.

❹ Минимум кода с точки зрения разработчика

❺ Лучше всего совместим со стеком технологий Spring (также аналогичным архитектурному стеку Spring MVC), включая Spring Security.

Ключевые проблемы:

❶ Наименьшее количество поддерживаемых спецификаций WS-* (не полностью совместимо с JAX-WS).

❷ Spring предлагает себя в качестве стандарта, и, следовательно, другие Java-совместимые платформы поддерживают лучшую поддержку стандартов.

❸ Поддерживается только модель разработки веб-сервисов на основе контракта.

Источник : https://dzone.com/articles/apache-cxf-vs-apache-axis-vs

Еще один вариант, который следует учитывать в этом сравнении: Произносить.

Особенно, если вы хотите сначала начать с Java.

Пожалуйста, ознакомьтесь с соответствующим сообщением по адресу: Создание веб-сервиса с помощью Spring-WS

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top