web-dev-qa-db-fra.com

Quel framework est le meilleur CXF ou Spring-WS?

Je suis en train de rechercher/comparer CXF et Spring-WS pour des services Web? Je dois fonctionner à la fois en tant que fournisseur et consommateur de services Web. En un mot, on m'a dit que Spring-WS est plus configurable, mais que CXF est plus facile à utiliser Cette question est subjective, mais m'aidera à diriger mes recherches.

  • Quelle expérience avez-vous avec l'un ou l'autre de ces cadres?
  • Avez-vous rencontré des pièges avec l'un ou l'autre des cadres?
  • Avez-vous trouvé des fonctionnalités utiles fournies par l’un ou par l’autre?
78
Kevin

Je pense que la plus grande différence entre Spring-WS et uniquement est "contrat-premier", alors que je pense que CXF est normalement "contrat-dernier".

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

Contract-last commence par le code Java, il est donc généralement plus facile de démarrer avec. 

Cependant, le WSDL qu'il crée a tendance à être plus fragile.

21
toolkit

À propos d'Apache CXF:

  • CXF prend en charge plusieurs normes, notamment SOAP, le profil de base WSI, WSDL, Adressage WS, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy et WS-SecureConversation. 
  • Apache CXF propose des approches à la fois contract-last (en commençant par Java) et Contract-first (en commençant par le WSDL). 
  • Apache CXF implémente JAX-WS et JAX-RS.

À propos de Spring WS:

  • Spring WS n'offre "que" le contrat d'abord, à partir d'un schéma XSD. 
  • Spring WS prend en charge les protocoles SOAP, WS-Security et WS-Addressing.

Donc, à la fin, je vois Spring WS comme un framework de services Web minimal mais je considère qu’il n’a aucun avantage (à mon avis) sur Apache CXF (qui s’intègre extrêmement bien avec Spring). Entre les deux, je choisirais Apache CXF.

75
Pascal Thivent

CXF ne vous empêche en aucun cas de démarrer avec un contrat (WSDL). J'ai utilisé ces deux produits pour créer un service Web. 

Dans CXF, j’utilisais Maven et le plug-in Maven, appelant le but wsimport pour générer le SEI (interface) que j’ai ensuite implémenté. Après avoir implémenté l'interface pour contenir la logique de service réelle et configuré mon implémentation de bean beans.xml , j'ai ensuite laissé Maven le conditionner dans un fichier war pour le déploiement. L'exercice entier n'aurait pas pu être plus facile.

Je ne pense pas que Spring-WS offre des avantages qui compensent l’absence de JAX-WS. CXF vous permet déjà d'utiliser Spring pour câbler vos beans et dispose également d'une implémentation complète de JAX-WS.

34
jkrupka

Nous avons une expérience avec CXF et son prédécesseur XFire et je peux le recommander comme un cadre solide, rapide (création et exécution de WS) et fiable.

Voir les articles que vous pouvez rencontrer avec CXF https://stackoverflow.com/questions/289977/recommended-framework-for-Java-web-services#290205 .__ Et je suis d'accord avec toolkit , la plus grande différence entre les frameworks est idéologiquement: quel est le premier code (ie interface) ou le contrat (ie wsdl). Voir quelques détails ici:

12
FoxyBOA

Apache CXF:

Points clés positifs

Services Norme de services Web la plus largement utilisée maintenant; Amélioration par rapport à AXIS2, qui est progressivement remplacé par Apache CXF

❷ Intuitif et facile à utiliser (moins de codage par rapport à AXIS2)

Séparation nette des frontaux, comme JAX-WS, du code principal

Entièrement compatible avec JAX-WS, JAX-RS et autres

Meilleure performance dans tous les environnements disponibles avec un minimum de temps de calcul

Prend en charge une grande variété de modèles frontaux

Prend en charge à la fois JAX-WS et JAX-RS (pour les services reposants)

Prise en charge de JBI et SDO (non pris en charge dans AXIS2)

Compatible avec Spring Framework

Principales préoccupations:

❶ Ne prend pas encore en charge l'orchestration et les transactions WS

❷ Ne supporte pas encore WSDL 2.0

Spring WS:

Points clés positifs

❶ Meilleur en termes de prise en charge de l'approche de développement de services Web d'abord avec contrat

❷ Applique les normes et les meilleures pratiques en fonction des contraintes du cadre (aucune issue et donc une limitation également)

Prend en charge les annotations de printemps ainsi que JAX-WS

❹ Moins de code du point de vue du développeur

❺ Meilleur alignement avec la pile technologique Spring (également similaire à la pile architecturale Spring MVC), y compris Spring Security

Principales préoccupations:

❶ Nombre le moins élevé de spécifications WS- * prises en charge (non entièrement compatible avec JAX-WS)

❷ Spring s’offre en standard et donc d’autres frameworks compatibles Java supportent mieux les standards

Ne prend en charge que le modèle de développement de services Web prioritaire sur contrat

Source: https://dzone.com/articles/Apache-cxf-vs-Apache-axis-vs

8
Ahmed MANSOUR

Une autre option à considérer dans cette comparaison est Enunciate .

Surtout si vous aimez commencer par Java en premier.

1

Consultez un article sur le sujet suivant: Création d’un service Web avec Spring-WS

0