Différence entre JAX-WS, Axis2 et CXF

131

Quelle est la différence entre:

  1. JAX-WS
  2. Axe2
  3. CXF

Les trois peuvent être utilisés pour créer des services Web en Java.
Pour l' instant, JAX-WS est une spécification et Axis2 et CXF sont des implémentations, mais Java 1.6 a une implémentation de JAX-WS si je ne me trompe pas.

On peut donc utiliser Java 1.6 pour développer des services Web JAX-WS sans utiliser Axis2 ou CXF? Alors à quoi servent Axis2, CXF?

Maverick Riz
la source

Réponses:

143

L'implémentation JAX-WS intégrée au JDK n'est en réalité que les éléments de base du soap. Si vous avez besoin de quelque chose de WS- * plus complexe comme WS-Security, WS-RM, WS-Policy, etc ..., vous devez utiliser l'une des alternatives comme CXF ou Metro ou Axis2. Cela peut également dépendre de ce à quoi vous essayez de vous intégrer. Par exemple, CXF a un support Spring de premier ordre ainsi qu'un très bon support OSGi.

CXF a aussi d'autres choses que JAX-WS. Il a également une implémentation JAX-RS conforme et prend très bien en charge les services d'exposition en tant que REST et SOAP. Possède une implémentation SOAP / JMS compatible W3C si ce type de choses est requis. En gros, beaucoup de choses ne sont pas disponibles à partir de l'impl. In-jdk JAX-WS.

Regarde aussi:

Différence entre Apache CXF et Axis

Daniel Kulp
la source
1
Merci, aide beaucoup. Donc, pour le service Web de base, je peux simplement utiliser java 1.6 pour implémenter. Et était-ce une implémentation de jax-ws dans java 1.5? Ou il a été ajouté après 1.6? Si j'ai besoin de fonctionnalités supplémentaires, puis-je utiliser CXF?
Maverick Riz
5
Il a été ajouté en 1.6. Si vous avez besoin de la prise en charge de la version 1.5, vous devez récupérer CXF ou l'implément de référence JAX-WS ou similaire.
Daniel Kulp
7
Et pour la plupart, si vous commencez avec l'implément in-jdk JAX-WS, vous pouvez déposer CXF à tout moment et cela fonctionnerait toujours.
Daniel Kulp
1
J'ai un petit doute. L'implémentation JAX-WS de Metro n'est-elle pas intégrée au JDK? Ou Metro est-il plus sophistiqué que l'implémentation JAX-WS intégrée au JDK?
Dexter
16

En bref.

WSDL WS- * sont indépendants du langage.

JAX-WS est la norme Java pour créer un service Web.

Apache CXF et Apache Axis 2 sont deux implémentations de JAX-WS. Ils offrent également des implémentations JAX-RS afin que vous puissiez créer des services Restful.

CXF a une meilleure intégration avec Spring et Camel ( camel-cxf ). Et Axis 2 ne semble pas avoir de version active.

Chenrui
la source
15

J'ai trouvé avec CXF - l'intégration avec Spring est très facile. De plus, il fournit diverses fonctionnalités telles que:

  1. Personnalisation des fonctionnalités de journalisation
  2. Intercepteur entrant et sortant
  3. Sécurité au niveau de l'application
  4. Gestion facile des exceptions à l'aide d'un défaut personnalisé.

Pour plus de détails, si vous le souhaitez, veuillez consulter ce lien:

http://predic8.com/axis2-cxf-jax-ws-comparison.htm

http://www.ibm.com/developerworks/java/library/j-jws11/

Et, j'ai lu les liens ci-dessus, sa preety m'aide. J'espère que ça marche pour toi aussi.

Merci !

puru
la source
3

L'organisation du service Web se réfère à certaines directives, à savoir BP (profil de base) 1.0 et BP (profil de base) 1.1. Base sur la version de personnes de Guidelines All Language (Java / .Net) Spécification avec implémentation par défaut Dans java La spécification de base sur BP 1.0 est JAX-RPC et la spécification 1.0 est JAX-WS

L'implémentation par défaut de JAX-WS est RI (implémentation de référence) Basée sur l'exigence / choix, nous pouvons changer l'implémentation (RI / AXIS-2 / CXF)

Lorsque nous utilisons java 1.6, ce cas dans JDK est déjà disponible et ne nécessite donc aucun autre fichier jar. Si vous souhaitez utiliser une implémentation différente, ce cas nécessitait un jar d'implémentation particulier.

Axis-2 et CXF proviennent d'Apache

Abhijit Patra
la source