¿Cuáles son las ventajas de usar Apache CXF sobre Apache Axis y viceversa?
Tenga en cuenta que soy completamente parcial (Presidente de PMC de CXF), pero mis pensamientos:
Desde una perspectiva estrictamente "puede el proyecto hacer lo que necesito que haga", ambos son bastante equivalentes. Hay algunas cosas de "caso límite" que CXF puede hacer que Axis 2 no puede hacer y viceversa. Pero para el 90% de los casos de uso, cualquiera funcionará bien.
Por lo tanto, se reduce a un montón de otras cosas además de las "características de la casilla de verificación".
API: CXF impulsa las API "basadas en estándares" (compatibles con JAX-WS), mientras que Axis2 general se dirige hacia cosas propietarias. Dicho esto, incluso CXF puede requerir el uso de API patentadas para configurar / controlar varias cosas fuera de la especificación JAX-WS. Para REST, CXF también usa API estándar (que cumplen con JAX-RS) en lugar de cosas propietarias. (Sí, estoy al tanto del tiempo de ejecución JAX-WS en Axis2, pero las herramientas y los documentos y todo no está dirigido a él)
Aspectos y compatibilidad de la comunidad: CXF se enorgullece de responder a los problemas y poner a disposición de los usuarios "fixpacks". CXF realizó 12 fixpacks para 2.0.x (lanzado hace dos años, aproximadamente cada 2 meses), 6 fixpacks para 2.1.x, y ahora 3 para 2.2.x. Axis2 realmente no "admite" versiones anteriores. A menos que se resuelva un problema "crítico", es posible que deba esperar hasta el próximo gran lanzamiento (tienen un promedio de aproximadamente 9-10 meses más o menos) para obtener soluciones. (aunque, con cualquiera de los dos, puede tomar el código fuente y parchearlo / arreglarlo usted mismo. Tengo que amar el código abierto).
Integración: CXF tiene una integración Spring mucho mejor si usa Spring. Toda la configuración y tal se realiza a través de Spring. Además, las personas tienden a considerar CXF como más "integrable" (nunca he visto Axis2 desde esta perspectiva) en otras aplicaciones. No estoy seguro si cosas como esa te importan.
Rendimiento: ambos funcionan muy bien. Creo que el enlace de datos ADB patentado de Axis2 es un poco más rápido que CXF, pero si usa JAXB (API basadas en estándares nuevamente), CXF es un poco más rápido. Cuando se utilizan escenarios más complejos como WS-Security, el "motor" de seguridad subyacente (WSS4J) es el mismo para ambos, por lo que el rendimiento es completamente comparable.
No estoy seguro si eso responde a la pregunta en absoluto. Espero que al menos proporcione alguna información.
:-)
Dan
fuente
Una cosa más es la actividad de la comunidad. Compare el tráfico de la lista de correo para axis y cxf (2013).
Entonces, si este es un indicador de uso, el eje es mucho menos utilizado que cxf.
Compare las estadísticas de CXF y Axis en ohloh . CXF tiene una actividad muy alta, mientras que Axis tiene una actividad baja en general.
Este es el gráfico del número de confirmaciones a lo largo del tiempo para CXF (rojo) y Axis1 (verde) Axis2 (azul).
fuente
Las ventajas de CXF:
Las ventajas de Axis2:
En resumen: desde los elementos de ventaja anteriores, nos lleva a una buena idea comparar Axis2 y CXF por sus propios méritos. todos tienen diferentes áreas bien desarrolladas en un determinado campo, CXF es muy configurable, integrable y tiene kits de herramientas ricos compatibles y cercanos a la comunidad Java, Axis2 ha adoptado un enfoque que lo hace en muchos aspectos se asemeja a un servidor de aplicaciones en miniatura. Es a través de múltiples lenguajes de programación. Debido a su independencia, Axis2 se presta a servicios web independientes, independientes de otras aplicaciones, y ofrece una amplia variedad de funcionalidades.
Como desarrollador, debemos acordar nuestra perspectiva para elegir el correcto, cualquiera que sea el marco que elija, tendrá el beneficio de una comunidad de código abierto activa y estable. En términos de rendimiento, hice una prueba basada en la misma funcionalidad y en el mismo contenedor web, el resultado muestra que CXF funcionó un poco mejor que Axis2, el caso único puede no reflejar exactamente sus capacidades y rendimiento.
En algunos artículos de investigación, revela que el enlace de datos ADB patentado de Axis2 es un poco más rápido que CXF ya que no tiene una característica adicional (WS-Security). Apache AXIS2 es el marco relativamente más utilizado, pero Apache CXF califica sobre otros marcos de servicios web comparativamente teniendo en cuenta la facilidad de desarrollo, la tendencia actual de la industria, el rendimiento, el cuadro de mando general y otras características (a menos que haya un soporte de orquestación de servicios web que sea explícitamente necesario, lo cual no es necesario aquí )
fuente
Según mi experiencia, CXF es bueno en términos de configuración en el entorno Spring. También las clases generadas son simples de entender. Y como es más activo, obtenemos un mejor soporte en comparación con AXIS o AXIS2.
fuente
Otra ventaja de CXF: se conecta a los servidores web mediante la autenticación NTLMV2 lista para usar. (utilizado por Windows 2008 y versiones posteriores) Antes de usar CXF, pirateé Axis2 para usar HTTPClient V4 + JCIFS para hacer esto posible.
fuente