Diferencia entre Apache CXF y Axis


¿Cuáles son las ventajas de usar Apache CXF sobre Apache Axis y viceversa?

Author: Daniel Kulp, 2009-08-07

6 answers

Tenga en cuenta que estoy completamente sesgado (PMC Presidente de CXF), pero mis pensamientos:

Desde una perspectiva estrictamente de "puede el proyecto hacer lo que necesito que haga", ambos son bastante equivalentes. Hay algunas cosas de "caso de borde" que CXF puede hacer que el eje 2 no puede y viceversa. Pero para el 90% de los casos de uso, cualquiera de los dos funcionará bien.

Por lo tanto, se reduce a un montón de otras cosas que no sean "características de casilla de verificación".

  • API-CXF impulsa API "basadas en estándares" (JAX-WS obediente) mientras que Axis2 general va hacia cosas propietarias. Dicho esto, incluso CXF puede requerir el uso de API propietarias para configurar/controlar varias cosas fuera de la especificación JAX-WS. Para REST, CXF también utiliza API estándar (compatible con JAX-RS) en lugar de cosas propietarias. (Sí, soy consciente del tiempo de ejecución de JAX-WS en Axis2, pero las herramientas y los documentos y todo no se dirigen a él)

  • Aspectos comunitarios y capacidad de apoyo-CXF se enorgullece de responder a los problemas y poniendo "fixpacks" a disposición de los usuarios. CXF hizo 12 fixpacks para 2.0.x (lanzado hace dos años, así que aproximadamente cada 2 meses), 6 fixpacks a 2.1.x, y ahora 3 para 2.2.x. Axis2 realmente no "soporta" versiones anteriores. A menos que se produzca un problema" crítico", es posible que deba esperar hasta la próxima versión grande (que promedia aproximadamente cada 9-10 meses) para obtener correcciones. (aunque, con cualquiera de los dos, puede agarrar el código fuente y parchear/arreglar usted mismo. Tengo que amar el código abierto.)

  • Integración-CXF tiene una integración de resorte mucho mejor si usa resorte. Toda la configuración y tal se hace a través de la primavera. Además, la gente tiende a considerar CXF como más "integrable" (nunca he visto Axis2 desde esta perspectiva) en otras aplicaciones. No estoy seguro de si esas cosas te importan.

  • Rendimiento - ambos funcionan muy bien. Creo que el ADB databinding propietario de Axis2 es un poco más rápido que CXF, pero si utiliza JAXB (API basadas en estándares de nuevo), 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 de si eso responde a la pregunta en absoluto. Espero que al menos proporcione alguna información.

:-)

Dan

 214
Author: Daniel Kulp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-04 21:37:31
  • Axis2: Más ubicuo en el mercado, soporta más enlaces, soporta otros lenguajes como C/C++.
  • CXF: Mucho más fácil de usar, más amigable con la primavera, más rápido obtuvo soporte para algunas extensiones WS -*.
 51
Author: vsg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-28 06:40:08

Una cosa más es la actividad de la comunidad. Compare el tráfico de la lista de correo para axis y cxf (2013).

Así que si este es cualquier indicador de uso, entonces axis se usa mucho menos 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 para el número de commits con el tiempo para CXF (rojo) y Axis1 (verde) Axis2 (azul). introduzca la descripción de la imagen aquí

 40
Author: Christian Schneider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-08 11:08:42

Las ventajas de CXF:

  1. CXF soporta WS-Addressing, WS-Policy, WS-RM, WS-Security y WS-I BasicProfile.
  2. CXF implementa la API JAX-WS (según JAX-WS 2.0 TCK).
  3. CXF tiene una mejor integración con Spring y otros frameworks.
  4. CXF tiene una alta extensibilidad en términos de su estrategia interceptora.
  5. CXF tiene una característica más configurable a través de la API en lugar de archivos XML engorrosos.
  6. CXF tiene enlaces:SOAP, REST / HTTP, y su Los enlaces de datos son compatibles con JAXB 2.0, Aegis, por defecto usan JAXB 2.0 y más.
  7. CXF tiene abundantes herramientas, por ejemplo, Java a WSDL, WSDL a Java, XSD a WSDL, WSDL a XML, WSDL a SOAP, WSDL a Service.

Las ventajas de Axis2:

  1. Axis2 también es compatible con WS-RM, WS-Security y WS-I BasicProfile excepto para WS-Policy, espero que sea compatible en una próxima versión.
  2. Axis tiene más opciones para enlaces de datos para su elección
  3. Axis2 soporta múltiples lenguajes, incluyendo la versión C/C++ y la versión Java.
  4. Axis2 admite una gama más amplia de enlaces de datos, incluidos XMLBeans, JiBX, JaxMe y JaxBRI, así como su propio enlace de datos nativo, ADB. historia más larga que CXF.

En Resumen: De los elementos de ventaja anteriores, nos lleva a un buen pensamiento para comparar Axis2 y CXF en sus propios méritos. todos ellos tienen diferentes áreas bien desarrolladas en un campo determinado, CXF es muy configurable, integrable y tiene ricos kits de herramientas compatibles y cerca de la comunidad Java, Axis2 ha adoptado un enfoque que lo hace en muchos sentidos similar 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 que son independientes de otras aplicaciones, y ofrece una amplia variedad de funcionalidades.

Como desarrollador, necesitamos acordar nuestra perspectiva para elegir la correcta, 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 configurada en el mismo contenedor web, el resultado muestra que CXF se desempeñó un poco mejor que Axis2, el caso individual puede no reflejar exactamente sus capacidades y rendimiento.

En algunos artículos de investigación, revela que el ADB databinding propietario de Axis2 es un poco más rápido que CXF, ya que no tiene característica (WS-Seguridad). Apache AXIS2 es el framework relativamente más utilizado, pero Apache CXF puntúa sobre otros Servicios Web comparativamente considerando la facilidad de desarrollo, la tendencia actual de la industria, el rendimiento, el cuadro de mando general y otras características (a menos que se necesite explícitamente soporte de orquestación de Servicios Web, lo cual no se requiere aquí)

 21
Author: ajithparamban,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-11 21:41:33

Según mi experiencia, CXF es bueno en términos de configurarlo en el entorno Spring. También las clases generadas son fáciles de entender. Y como es más activo, obtenemos mejor soporte en comparación con AXIS o AXIS2.

 1
Author: Sudip7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-16 07:13:34

Otra ventaja de CXF: se conecta a servidores web usando la autenticación NTLMV2 desde el primer momento. (utilizado por Windows 2008 y arriba) Antes de usar CXF, hackeé Axis2 para usar HttpClient V4 + JCIFS para hacer esto posible.

 1
Author: user1717728,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-26 16:41:32