wsdl - instalar - Diferencia entre Apache CXF y Axis
instalar apache cxf (6)
¿Cuáles son las ventajas de usar Apache CXF sobre Apache Axis y viceversa?
Otra ventaja de CXF: se conecta a los servidores web utilizando la autenticación NTLMV2 lista para usar. (utilizado por Windows 2008 en adelante) Antes de usar CXF, pirateé Axis2 para usar HTTPClient V4 + JCIFS para hacer esto posible.
Según mi experiencia, CXF es bueno en términos de configurarlo en el entorno Spring. También las clases generadas son simples de entender. Y como es más activo, obtenemos mejor soporte en comparación con AXIS o AXIS2.
Tenga en cuenta que soy completamente parcial (Presidente de CXF de PMC), pero mis pensamientos:
Desde una perspectiva estrictamente "¿puede el proyecto hacer lo que necesito hacer?", Ambos son bastante equivalentes. Hay algunas cosas de "borde cerrado" que CXF puede hacer que el Eje 2 no puede y viceversa. Pero para el 90% de los casos de uso, o bien funcionará bien.
Por lo tanto, se reduce a un montón de otras cosas que no sean "funciones de casilla de verificación".
API: CXF empuja las API "basadas en estándares" (que cumplen con JAX-WS) mientras que Axis2 general va hacia cosas patentadas. Dicho esto, incluso CXF puede requerir usos de API propietarias para configurar / controlar varias cosas fuera de la especificación JAX-WS. Para REST, CXF también usa API estándar (que cumple con JAX-RS) en lugar de cosas propietarias. (Sí, estoy al tanto del tiempo de ejecución de JAX-WS en Axis2, pero las herramientas y los documentos, y todo lo demás, no lo atacan)
Aspectos comunitarios y compatibilidad: CXF se enorgullece de responder a los problemas y de poner a disposición de los usuarios los "fixpacks". CXF hizo 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 produzca un problema "crítico", es posible que deba esperar hasta el siguiente lanzamiento grande (promedian cada 9-10 meses más o menos) para obtener soluciones. (aunque, con cualquiera de los dos, puede tomar el código fuente y parchear / arreglarse. Tengo que amar el código abierto).
Integración: CXF tiene una integración de Spring mucho mejor si usa Spring. Toda la configuración y tal se hace a través de Spring. Además, las personas tienden a considerar CXF como más "incrustable" (nunca he visto Axis2 desde esta perspectiva) en otras aplicaciones. No estoy seguro si cosas así te importan.
Rendimiento: ambos funcionan muy bien. Creo que el enlace de datos ADB patentado por Axis2 es un poco más rápido que CXF, pero si usas 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 la pregunta en absoluto. Espero que al menos proporcione algo de información.
:-)
Dan
Una cosa más es la actividad de la comunidad. Compare el tráfico de la lista de correo para axis y cxf (2013).
- Usuario de Axis 50-100 correos por mes
- CXF usuario 400-500 correos por mes
Entonces, si este es un indicador de uso, entonces 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 poca actividad en general.
Este es el gráfico del número de confirmaciones en el tiempo para CXF (rojo) y Axis1 (verde) Axis2 (azul).
Las ventajas de CXF:
- CXF admite WS-Addressing, WS-Policy, WS-RM, WS-Security y WS-I BasicProfile.
- CXF implementa JAX-WS API (según JAX-WS 2.0 TCK).
- CXF tiene una mejor integración con Spring y otros frameworks.
- CXF tiene una gran extensibilidad en términos de su estrategia de interceptor.
- CXF tiene una característica más configurable a través de la API en lugar de archivos XML engorrosos.
- CXF tiene enlaces: SOAP, REST / HTTP y sus enlaces de datos son compatibles con JAXB 2.0, Aegis, de forma predeterminada utiliza JAXB 2.0 y más especificaciones estándar de Java.
- CXF tiene abundantes kits de 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:
- Axis2 también es compatible con WS-RM, WS-Security y WS-I BasicProfile, excepto WS-Policy. Espero que sea compatible en una próxima versión.
- Axis tiene más opciones para enlaces de datos para su elección
- Axis2 es compatible con varios idiomas, incluida la versión C / C ++ y la versión de Java.
- 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. un historial más largo que CXF.
En resumen: de los elementos de ventaja anteriores, nos lleva a buenos pensamientos para comparar Axis2 y CXF por sus propios méritos. todos ellos tienen diferentes áreas bien desarrolladas en un campo determinado, CXF es muy configurable, integrable y tiene kits de herramientas ricas y compatibles con la comunidad Java, Axis2 ha adoptado un enfoque que lo hace parecerse en muchos aspectos a un servidor de aplicaciones en miniatura. está en 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 la correcta, cualquiera sea el marco que elija, tendrá el beneficio de una comunidad de código abierto activa y estable. En términos de rendimiento, realicé una prueba basada en la misma funcionalidad y configed en el mismo contenedor web, el resultado muestra que CXF tuvo un rendimiento un poco mejor que Axis2, el único caso puede no reflejar exactamente sus capacidades y rendimiento.
En algunos artículos de investigación, revela que el enlace de datos ADB propiedad de Axis2 es un poco más rápido que CXF ya que no tiene características adicionales (WS-Security). Apache AXIS2 es el marco relativamente más utilizado, pero Apache CXF puntúa más que otros frameworks de servicios web comparando 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 Web Services Orchestration, que no es necesario aquí )
- Axis2 : más ubicuo en el mercado, admite más enlaces, admite otros lenguajes como C / C ++.
- CXF : mucho más fácil de usar, más compatible con Spring y más rápido con soporte para algunas extensiones WS- *.