Question

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 de l'un ou l'autre de ces frameworks?
  • 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?
Était-ce utile?

La solution

Je pense que la plus grande différence entre Spring-WS et uniquement est "contract-first", alors que je pense que CXF est normalement "contract-last".

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.

Autres conseils

À 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 contrat en dernier (en commençant par Java) et Contrat en premier (en commençant par le WSDL).
  • Apache CXF implémente JAX-WS et JAX-RS.

À propos de Spring WS:

  • Spring WS ne propose que "&"; contract-first, à partir d'un schéma XSD.
  • Spring WS prend en charge les protocoles SOAP, WS-Security et WS-Addressing.

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

CXF ne vous empêche en aucune manière 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 l’objectif 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é la mise en œuvre de mon bean beans.xml , j'ai ensuite laissé Maven le conditionner dans un fichier war à des fins de déploiement. L’exercice entier n’aurait pas été aussi 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 déjà utilisé CXF et son prédécesseur XFire et je peux le recommander comme infrastructure solide, rapide (création et exécution de WS) et fiable.

En ce qui concerne les problèmes que vous pouvez rencontrer avec CXF, consultez mon message https: / /stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205 Et je suis d'accord avec toolkit , sur le fait que la plus grande différence entre les frameworks est idéologique: quel est le premier code (c'est-à-dire l'interface) ou le contrat (ie wsdl). Voir quelques détails ici:

Apache CXF:

Points clés:

? Web Services Standard le plus utilisé actuellement; Amélioration par rapport à AXIS2, qui est progressivement remplacé par Apache CXF

? Intuitif & amp; Facile à utiliser (moins de codage par rapport à AXIS2)

Séparer clairement les frontaux, tels que JAX-WS, du code principal

Entièrement compatible avec JAX-WS, JAX-RS & amp; autres

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

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

Prend en charge JAX-WS & amp; JAX-RS (pour services reposants)

Prend en charge JBI & amp; SDO (non pris en charge dans AXIS2)

Compatible avec Spring Framework

Principales préoccupations:

Ne prend pas en charge l'orchestration & amp; Transactions WS encore

Ne supporte pas encore WSDL 2.0

Spring WS:

Points clés:

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

? Applique les normes & amp; Meilleures pratiques par contraintes de structure (pas de solution et donc de limitation également)

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

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

? Parfaitement aligné sur la pile technologique Spring (une pile architecturale similaire à Spring MVC), y compris la sécurité Spring

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 & amp; d’autres frameworks compatibles Java supportent un meilleur support des standards

? Ne prend en charge que le modèle de développement de services Web "contrat d'abord"

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

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

Surtout si vous souhaitez commencer par Java en premier.

Veuillez consulter un article connexe à l'adresse Construction d'un service Web avec Spring-WS

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top