Différence entre Apache CXF et Axis
6 réponses
gardez à l'esprit, je suis complètement biaisé (Président PMC de la CXF), mais mes pensées:
d'un point de vue strictement" le projet peut-il faire ce dont j'ai besoin", les deux sont assez équivalents. Il y a des choses que CXF peut faire que L'Axe 2 ne peut pas et vice versa. Mais pour 90% des cas d'utilisation, l'un ou l'autre fonctionne très bien.
ainsi, il se résume à un tas d'autres choses que les"caractéristiques de boîte à cocher".
-
API-CXF pushes "standards based" API (JAX-WS compliant) while Axis2 general goes toward proprietary things. Cela dit, même la CXF peut nécessiter l'utilisation d'API propriétaires pour configurer/contrôler diverses choses en dehors de la spécification JAX-WS. Pour le reste, la CXF utilise également des API standard (conformes à JAX-RS) au lieu de choses propriétaires. (Oui, je suis au courant du JAX-WS runtime dans Axis2, mais L'outillage et les docs et tout ne le ciblent pas)
-
aspects Communautaires et de prise en charge - CXF est fière de répondre aux questions et faire des "corrections" à la disposition des utilisateurs. La CXF a fait 12 fixpacks pour 2.0.x (sorti il y a deux ans, donc environ tous les 2 mois), 6 fixpacks à 2.1.x, et maintenant 3 2.2.x. Axis2 ne "supporte" pas vraiment les anciennes versions. À moins qu'un problème" critique " ne se pose, vous devrez peut-être attendre jusqu'à la prochaine sortie importante (en moyenne tous les 9 à 10 mois environ) pour obtenir des correctifs. (bien que, avec l'un ou l'autre, vous pouvez saisir la source code et correction vous-même. Gotta love open source.)
-
Intégration - CXF a beaucoup plus de Spring integration si vous utilisez le Printemps. Toute la configuration et tel est fait par le ressort. En outre, les gens ont tendance à considérer la CXF comme plus "intégrable" (Je n'ai jamais regardé Axis2 de cette perspective) dans d'autres applications. Je ne suis pas sûr que ce genre de choses vous importent.
-
Performance - ils à la fois effectuer très bien. Je pense que la liaison de données ADB exclusive D'Axis2 est un peu plus rapide que la CXF, mais si vous utilisez JAXB (API basée sur les standards), la CXF est un peu plus rapide. Lorsqu'on utilise des scénarios plus complexes comme WS-Security, le "moteur" de sécurité sous-jacent (WSS4J) est le même pour les deux, de sorte que les performances sont tout à fait comparables.
Je ne suis pas sûr que cela réponde à la question. Espérons au moins fournit certaines informations.
:- )
Dan
- Axis2 : plus répandu sur le marché, supporte plus de reliures, supporte d'autres langages comme C/C++.
- CXF : beaucoup plus facile à utiliser, plus facile à utiliser avec les ressorts, prise en charge plus rapide de certaines extensions WS -*.
Une chose est l'activité de la communauté. Comparez le trafic des listes de diffusion pour axis et cxf (2013).
- "151940920 de" l'Axe de l'utilisateur de 50 à 100 mails par mois
- CXF utilisateur 400 à 500 mails par mois
ainsi, s'il s'agit d'un indicateur d'utilisation, axis est de loin moins utilisé que cxf.
comparer les statistiques CXF et Axis à ohloh . La CXF est très active, tandis Qu'Axis est peu active dans l'ensemble.
ceci est le graphique pour le nombre de commits au fil du temps pour CXF (rouge) et Axis1 (Vert) Axis2 (bleu).
les avantages de la CXF:
- CXF supports pour WS-Addressing, WS-Policy, WS-RM, WS-Security et WS-I BasicProfile.
- CXF implémente L'API JAX-WS (selon JAX-WS 2.0 TCK).
- CXF a une meilleure intégration avec le ressort et d'autres cadres.
- CXF a une grande extensibilité en termes de stratégie d'interception.
- CXF a plus fonction configurable via L'API au lieu de fichiers XML encombrants.
- CXF a des fixations de type pav, REST / HTTP, et ses fixations de données prennent en charge JAXB 2.0,Aegis, par défaut il utilise JAXB 2.0 et plus proche Spécification standard Java.
- CXF dispose de nombreux outils, par exemple Java to WSDL, WSDL to Java, XSD to WSDL, WSDL to XML, WSDL to SOAP, WSDL to Service.
les avantages D'Axis2:
- Axis2 prend également en charge WS-RM, WS-Security, et WS-I BasicProfile sauf pour WS-Policy, Je m'attends à ce qu'il sera pris en charge dans une prochaine version.
- Axis a plus d'options pour les liaisons de données pour votre choix
- Axis2 supporte plusieurs langues-y compris la version C / C++ et la version Java.
- Axis2 prend en charge une plus large gamme de reliures de données, y compris XMLBeans, JiBX, JaxMe et JaxBRI ainsi que ses propres données natives la liaison, de la BAD. plus longue histoire que la CXF.
En résumé: à partir des items avantage ci-dessus, cela nous amène à une bonne réflexion 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 dispose de kits d'outils riches pris en charge et proche de la communauté Java, Axis2 a adopté une approche qui lui fait à de nombreux égards ressembler à une application serveur en miniature. il est à travers plusieurs langages de programmation. en raison de son indépendance, Axis2 se prête à des services web autonomes, indépendants des autres applications et offrant une grande variété de fonctionnalités.
en tant que développeur, nous devons accorder notre point de vue pour choisir le bon, quel que soit le cadre que vous choisissez, vous aurez l'avantage d'une communauté open source active et stable. En termes de performance, j'ai fait un test basé sur le même fonctionnalité et configuré dans le même conteneur web, le résultat montre que CXF a réalisé un peu mieux que Axis2, le cas unique peut ne pas refléter exactement leurs capacités et leurs performances.
dans certains articles de recherche, il révèle que la Banque de données exclusive ADB d'Axis2 est un peu plus rapide que CXF puisqu'elle n'a pas de fonctionnalité supplémentaire(WS-Security). Apache AXIS2 est relativement le cadre le plus utilisé mais Apache CXF scores sur D'autres services web cadre comparativement compte tenu de la facilité de développement, de la tendance actuelle de l'industrie, de la performance, du tableau de bord général et d'autres caractéristiques (à moins qu'il n'y ait un soutien D'Orchestration de Services Web est explicitement nécessaire, ce qui n'est pas requis ici)
selon mon expérience CXF est bon en termes de configuration dans L'environnement de printemps. Les classes générées sont aussi simples à comprendre. Et comme il est plus actif, nous obtenons un meilleur support par rapport à AXIS 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 & up) Avant D'utiliser CXF, J'ai piraté Axis2 pour utiliser HTTPClient V4 + JCIFS pour rendre cela possible.