¿Cómo elegir entre Axis, Axis2 y Apache CXF?
Axis2 es un nuevo proyecto que reescribe completamente Axis, utilizando una nueva arquitectura modular para facilitar la ampliación de la funcionalidad y más.
Apache CXF es una reorganización de dos proyectos existentes, XFire y Celtix.
Pregunta: ¿Qué pasa si mi aplicación existente está basada en Axis 1.x, XFire o Celtix? ¿Deberían migrarse todos a estos nuevos marcos? Pero incluso si hacemos eso, ¿a qué marcos deberíamos migrar?
Si está escribiendo una nueva aplicación de servicios web, no es necesario que la migre, pero ¿qué marco debería elegir utilizar? ¿Cuál es mejor que el otro?
En cuanto a la migración de aplicaciones existentes, si su aplicación ya es estable y madura, con pocos cambios de requisitos en el futuro previsible, ahorre esfuerzos y no emprenda la migración "costosa".
Si su aplicación existente está plagada de errores, rendimiento, funcionalidad, etc., entonces es hora de considerar la migración. Entonces, ¿qué marco debería elegir? Compare las diferencias entre ellos:
1. Apache CXF admite WS-Addressing, WS-Policy, WS-RM, WS-Security y WS-I BasicProfile
2. -Addressing, WS-RM, WS-Security y WS-I BasicProfile
2, Axis2 admite WS-Addressing, WS-RM, WS-Security y WS-I BasicProfile.
3. Apache CXF está escrito según el concepto Spring, lo que significa que se puede integrar perfectamente con Spring
4. Axis2 no lo tiene
5. Más Enlace de datos, incluidos XMLBeans, JiBX, JaxMe y JaxBRI, así como su enlace de datos nativo (ADB).
6. Apache CXF actualmente solo admite JAXB y Aegis, y el valor predeterminado es JAXB 2.0. A diferencia de XFire, que admite Aegis de forma predeterminada, XMLBeans, JiBX y Castor serán compatibles con la versión CXF 2.1 y la actual. La versión es 2.0 2
7. Axis2 admite varios idiomas y tiene versión C/C.
2. Si la aplicación sigue el concepto Spring, Apache CXF es una mejor opción, especialmente para servicios web integrados.
3. Sigue siendo el marco utilizado por el proyecto original, como Axis1, XFire, Celtrix o BEA y los servicios web propios de otros proveedores. BEA y las implementaciones de servicios web propios de otros proveedores obtienen algo a cambio de nada.
Axis entra en conflicto con el analizador xml utilizado por muchos paquetes de software de código abierto y se producirán problemas cada vez que se utilice. Especialmente la implementación de servicios web en websphere es una pesadilla.
Sí, el eje entra en conflicto con jfreechart.
CXF debería ser un proyecto de incubadora de Apache.
Dos frases para agregar aquí
CXF aprobó el TCK de JAXWS2.0 y actualmente está desarrollando JAXWS2.1.
El modelo de programación de CXF es más simple que AIXS2 y su ejecución independiente es mucho más eficiente que AXIS2.
Si planea desarrollar servicios web utilizando JAVA, desarrollar con la API JAXWS garantiza que su código se ejecutará correctamente en la mayoría de los marcos de servicios web. Si todavía utiliza RPC/codificación, entonces AXIS 1.x es su única opción. Debido a que XFire, CXF y AXIS2 no admiten codificación/RPC, ¿por qué? La razón principal es que RPC/Encoding ha quedado obsoleto en la especificación JAXWS debido a su mala interoperabilidad.