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.
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.
À propos d'Apache CXF:
À propos de Spring WS:
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.
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.
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:
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
Une autre option à considérer dans cette comparaison est Enunciate .
Surtout si vous aimez commencer par Java en premier.
Consultez un article sur le sujet suivant: Création d’un service Web avec Spring-WS