Question

Quels sont les avantages de l'utilisation d'Apache CXF sur Apache Axis et vice-versa?

Était-ce utile?

La solution

Gardez à l'esprit, je suis complètement biaisé (président PMC de CXF), mais mes pensées:

De strictement « le projet peut faire ce que je besoin de faire » point de vue, les deux sont assez équivalents. Il a des choses « de cas de bord » qui CXF peut le faire Axe 2 ne peut pas et vice-versa. Mais pour 90% des cas d'utilisation, que ce soit fonctionnera très bien.

Ainsi, il se résume à un tas d'autres choses autres que « caractéristiques de case à cocher ».

  • API - API CXF pousse de "normes basées sur" (conforme JAX-WS), alors que Axis2 générale va vers les choses de propriété. Cela dit, même CXF peut exiger des utilisations de API propriétaire pour configurer / contrôler diverses choses en dehors de la spécification JAX-WS. Pour REST, CXF utilise également l'API standard (conforme à la JAX-RS) au lieu des choses propriétaires. (Oui, je suis au courant du moteur d'exécution JAX-WS en Axis2, mais l'outillage et docs et tout ne cible pas)

  • aspects communautaires et supportabilité - CXF est fier de répondre aux questions et faire « fixpacks » à la disposition des utilisateurs. CXF a fait 12 fixpacks pour 2.0.x (publié il y a deux ans, donc environ tous les 2 mois), 6 fixpacks à 2.1.x, et maintenant 3 pour 2.2.x. Axis2 n'a pas vraiment « soutenir » les anciennes versions. À moins d'une question « critique » est touché, vous devrez peut-être attendre la prochaine version (ils sont en moyenne sur tous les 9-10 mois environ) pour obtenir des correctifs. (Bien que, soit, vous pouvez saisir le code source et le patch / réparer vous-même. Gotta love open source).

  • Intégration - CXF a une bien meilleure intégration Spring si vous utilisez Spring. Toute la configuration et tel se fait par Spring. De plus, les gens ont tendance à considérer CXF comme plus « intégrable » (je ne l'ai jamais regardé Axis2 dans cette perspective) dans d'autres applications. Je ne sais pas si des choses comme ça vous importe.

  • Performance - ils ont tous deux une très bonne performance. Je pense que la BAD databinding propriétaire de Axis2 est un peu plus rapide que CXF, mais si vous utilisez JAXB (normes basées de nouveau API), CXF est un peu plus rapide. Lorsque vous utilisez des scénarios plus complexes comme WS-Security, le "moteur" de la sécurité sous-jacente (WSS4J) est le même pour les deux si la performance est tout à fait comparable.

Je ne sais pas si cela répond à la question du tout. Espérons que au moins fournit des informations.

: -)

Dan

Autres conseils

  • Axis2 :. Plus omniprésent sur le marché, prend en charge plus des liaisons, prend en charge d'autres langages comme C / C ++
  • CXF :. Beaucoup plus facile à utiliser, plus convivial printemps, plus rapide ont obtenu un soutien pour certains WS- * extensions

Une autre chose est l'activité de la communauté. Comparer le trafic de liste de diffusion pour l'axe et CxF (2013).

Donc, si cela est un indicateur d'utilisation alors axe est de loin moins utilisé que CxF.

comparer les statistiques CXF et Axis à ohloh. CXF a une activité très élevée alors que l'axe a une faible activité globale.

Voici le tableau pour le nombre de commits au fil du temps pour CXF (rouge) et Axis1 (vert) Axis2 (bleu). entrer image description ici

Les avantages de CXF:

  1. CXF soutient pour WS-Addressing, WS-Policy, WS-RM, WS-Security et WS-I BasicProfile.
  2. CXF met en oeuvre l'API JAX-WS (selon par JAX-WS 2.0 TCK).
  3. CXF a une meilleure intégration avec le printemps et d'autres cadres.
  4. CXF a élevé en termes d'extensibilité de leur stratégie intercepteur.
  5. CXF a une fonction plus configurable via l'API au lieu de fichiers XML encombrants.
  6. CXF a des liens avec:. SOAP, REST / HTTP et son soutien JAXB 2.0 Liaisons de données, Aegis, par défaut, il utilise JAXB 2.0 et plus proche spécification Java standard
  7. CXF a des boîtes à outils abondante, par exemple, Java WSDL, WSDL à Java, XSD WSDL, WSDL XML, WSDL SOAP, WSDL au service.

Les avantages de Axis2:

  1. Axis2 prend également en charge WS-RM, WS-Security et WS-I BasicProfile sauf pour WS-Policy, je pense qu'il sera pris en charge dans une prochaine version.
  2. Axis a plus d'options pour les liaisons de données pour votre choix
  3. Axis2 prend en charge plusieurs langues, y compris la version C / C ++ et Java version.
  4. Axis2 prend en charge un large éventail de liaisons de données, y compris XMLBeans, JiBX, JaxMe et JaxBRI ainsi que ses propres données natives de liaison, de la BAD. plus l'histoire que CXF.

En résumé: éléments ci-dessus avantage, il nous amène à une bonne pensée pour comparer Axis2 et CXF sur leurs propres mérites. ils ont tous différents domaines bien développés dans un certain domaine, CXF est très configurable, intégrable et a des kits riches d'outils pris en charge et à proximité de la communauté Java, Axis2 a adopté une approche qu'il fait à bien des égards ressembler à un serveur d'applications en miniature. il est dans plusieurs langages de programmation. parce que son indépendance, Axis2 se prête à des services Web qui se retrouvent seuls, indépendamment des autres applications, et offre une grande variété de fonctionnalités.

En tant que développeur, nous devons accorder notre point de vue de choisir la bonne, selon le cadre que vous choisissez, vous aurez l'avantage d'une communauté ouverte active et stable la source. En termes de performance, je l'ai fait un test basé la même fonctionnalité et configed dans le même conteneur Web, le résultat montre que CXF effectué peu mieux que Axis2, le seul cas peut ne pas refléter exactement leurs capacités et les performances.

Dans certains articles de recherche, il révèle que la BAD databinding propriétaire de Axis2 est un peu plus rapide que CXF car il ne pas caractéristique supplémentaire (WS-Security). Apache AXIS2 est relativement cadre le plus utilisé, mais les scores Apache CXF par rapport aux autres en tenant compte relativement cadre des services Web facilité de développement, la tendance actuelle de l'industrie, la performance, tableau de bord global et d'autres caractéristiques (sauf en charge des services Web Orchestration est explicitement nécessaire, ce qui n'est pas nécessaire ici )

Selon mon expérience CXF est bon en termes de configuration dans l'environnement de printemps. De plus, les classes générées sont simples à comprendre. Et comme il est plus actif, nous obtenons un meilleur support par rapport à l'axe ou AXIS2.

Un autre avantage de CXF: il se connecte aux serveurs Web en utilisant l'authentification NTLMv2 hors de la boîte. (Utilisé par Windows 2008 et plus) Avant d'utiliser CXF, je piraté Axis2 utiliser HTTPClient V4 + JCIFS pour rendre cela possible.

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