Pregunta

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

¿Fue útil?

Solución

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

Desde un estricto "puede hacer el proyecto lo que necesito que haga" punto de vista, ambos son bastante equivalentes. Hay algunos casos de "borde" cosas que CXF puede hacer que el eje 2 no puede y viceversa. Pero el 90% de los casos de uso, ya sea va a funcionar bien.

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

  • API - empuja CXF "normas basadas" del API (JAX-WS compatible), mientras que Axis2 en general va hacia las cosas de propiedad. Dicho esto, incluso CXF puede requerir usos de la API propietaria para configurar / controlar varias cosas fuera de la especificación JAX-WS. Para el descanso, CXF también utiliza (JAX-RS compatible) de API estándar en lugar de las cosas propias. (Sí, soy consciente del tiempo de ejecución JAX-WS en Axis2, pero las herramientas y documentos y todo lo que no se dirige a ella)

  • Los aspectos comunitarios y la capacidad de soporte - CXF se enorgullece en dar respuesta a los problemas y hacer "fixpacks" disponible para los usuarios. CXF hizo 12 fixpacks para 2.0.x (lanzado hace dos años, por lo menos cada 2 meses), 6 fixpacks a 2.1.x, y ahora 3 para 2.2.x. Axis2 en realidad no "apoyo" versiones anteriores. A menos que un problema "crítico" es golpeado, es posible que tenga que esperar hasta la próxima gran versión (que tienen un promedio de cada 9-10 meses o así) para obtener correcciones. (Aunque, ya sea, puede tomar el código fuente y el parche / arreglar usted mismo. Me encanta que la fuente abierta.)

  • Integración - CXF tiene mucho mejor integración primavera si se utiliza la primavera. Toda la configuración y tales se realiza a través del resorte. Además, las personas tienden a considerar CXF como más "embebido" (nunca he mirado en Axis2 desde esta perspectiva) en otras aplicaciones. No estoy seguro si ese tipo de cosas le importan.

  • Rendimiento - ambos funcionan muy bien. Creo que el enlace de datos propietaria de ADB Axis2 es un poco más rápido que CXF, pero si se utiliza JAXB (normas basadas API de nuevo), CXF es un poco más rápido. Al utilizar escenarios más complejos, como WS-Security, la seguridad "motor" subyacente (WSS4J) es el mismo tanto para lo que el rendimiento es completamente comparables.

No estoy seguro si eso responde a la pregunta en absoluto. Espero que al menos proporciona alguna información.

: -)

Dan

Otros consejos

  • Axis2 . Más omnipresente en el mercado, es compatible con más ataduras, soporta otros lenguajes como C / C ++
  • CXF . Mucho más fácil de usar, más amigable primavera, más rápido tiene soporte para algunas extensiones WS *

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

Así que si esto es un indicador de uso de continuación del eje es, con mucho, utiliza menos que cxf.

comparar las estadísticas CXF y del Eje en Ohloh . CXF tiene actividad muy alta, mientras que el Eje tiene una baja actividad general.

Este es el gráfico para el número de confirmaciones más de tiempo para CXF (rojo) y Axis1 (verde) Axis2 (azul). introducir descripción de la imagen aquí

Las ventajas de CXF:

  1. CXF soporta para WS-Addressing, WS-Policy, WS-RM, WS-Security y WS-I BasicProfile.
  2. CXF implementa JAX-WS API (de acuerdo por JAX-WS 2.0 TCK).
  3. CXF tiene una mejor integración con la primavera y otros marcos.
  4. CXF tiene una alta extensibilidad en función de su estrategia interceptor.
  5. CXF tiene 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 apoyo a los enlaces de datos JAXB 2.0, Aegis, por defecto se utiliza JAXB 2.0 y más cerca de Java especificación estándar
  7. CXF tiene abundantes juegos de herramientas, por ejemplo Java a WSDL, WSDL a Java, XSD para WSDL, WSDL para XML, WSDL para SOAP, WSDL para servicio.

Las ventajas de Axis2:

  1. Axis2 también es compatible con WS-RM, WS-Security y WS-I BasicProfile excepción de WS-Policy, espero que se apoyará en una próxima versión.
  2. Axis cuenta con más opciones para enlaces de datos para su elige
  3. Axis2 soporta múltiples idiomas, incluyendo la versión C / C ++ y Java versión.
  4. Axis2 es compatible con una gama más amplia de enlaces de datos, incluyendo XMLBeans, JiBX, JaxMe y JaxBRI, así como sus propios datos nativos de unión, el BAD. historia más larga que CXF.

En Resumen: Desde arriba artículos ventaja, que nos lleva a unos buenos pensamientos para comparar Axis2 y CXF por sus propios méritos. todos ellos tienen diferentes áreas bien desarrolladas en un determinado campo, CXF es muy configurable, integrable y tiene juegos de herramientas ricos apoyados y cerca de la comunidad de Java, Axis2 ha tomado un enfoque que hace que en muchos aspectos se asemejan 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 hacia los servicios web que están solos, independiente de otras aplicaciones, y ofrece una amplia variedad de funciones.

Como desarrollador, tenemos que otorgar nuestra perspectiva para elegir el más adecuado, lo que marco que elija, tendrá el beneficio de una comunidad de código abierto activo y estable. En términos de rendimiento, hice una prueba basada en la misma funcionalidad y configed en el mismo contenedor web, el resultado muestra que CXF realizó poco mejor que Axis2, el solo caso puede no reflejar con exactitud sus capacidades y el rendimiento.

En algunos artículos de investigación, que revela que el enlace de datos propietaria de ADB Axis2 es un poco más rápido que CXF ya que no tienen función adicional (WS-Security). Apache Axis2 es el marco relativamente más utilizado pero las puntuaciones Apache CXF más de Marco otros servicios web que consideran comparativamente facilidad de desarrollo, la tendencia actual de la industria, el rendimiento, el resultado total y otras características (a menos que se se necesita explícitamente el apoyo orquestación de servicios web, lo cual no se requiere aquí )

De acuerdo con mi experiencia CXF es bueno en términos de la configuración en el medio ambiente de primavera. También las clases generadas son fáciles de entender. Y ya que es más activa, se obtiene un mejor soporte en comparación con AXIS o AXIS2.

Otra ventaja de CXF: se conecta a los servidores web con la autenticación NTLMv2 fuera de la caja. (Utilizado por Windows 2008 y arriba) Antes de utilizar CXF, me han pirateado Axis2 utilizar HTTPClient V4 + JCIFS para hacer esto posible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top