Подтвердить что ты не робот

Какая структура лучше CXF или Spring -WS?

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

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

Ответ 1

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

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

Контракт-последний начинается с Java-кода, поэтому с ним обычно проще начать работу.

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

Ответ 2

Об Apache CXF:

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

О Spring WS:

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

Apache CXF:

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

❶ Наиболее широко используемые веб-сервисы Standard Now; Улучшение 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 WS:

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

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

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

❸ Поддержка Spring аннотаций, а также JAX-WS

❹ Меньший код с точки зрения разработчиков

❺ Наилучшее согласование с технологическим стеком Spring (также похожий архитектурный стек как Spring MVC), включая Spring Безопасность

Основные проблемы:

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

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

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

Ответ 6

Другой вариант, который следует учитывать при этом сравнении, - Enunciate.

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