Diferencia entre JAX-WS, Axis2 y CXF

131

Cuál es la diferencia entre:

  1. JAX-WS
  2. Eje2
  3. CXF

Los tres se pueden usar para crear servicios web en Java.
Hasta ahora sé que JAX-WS es una especificación y Axis2 y CXF son implementaciones, pero Java 1.6 tiene implementación de JAX-WS si no me equivoco.

Entonces, ¿se puede usar Java 1.6 para desarrollar servicios web JAX-WS sin usar Axis2 o CXF? Entonces, ¿para qué sirve Axis2, CXF?

Maverick Riz
fuente

Respuestas:

143

La implementación de JAX-WS integrada en el JDK realmente es solo lo básico. Si necesita cualquiera de las cosas WS- * más complejas como WS-Security, WS-RM, WS-Policy, etc., debe usar una de las alternativas como CXF o Metro o Axis2. También puede depender de lo que intente integrar. Por ejemplo, CXF tiene un soporte Spring de primer nivel, así como un muy buen soporte OSGi.

CXF también tiene otras cosas además de JAX-WS. También tiene una implementación JAX-RS compatible y admite servicios de exposición como REST y SOAP muy bien. Tiene una implementación SOAP / JMS compatible con W3C si se requiere ese tipo de cosas. Básicamente, hay muchas cosas que no están disponibles en la impl de JAX-WS in-jdk.

Ver también:

Diferencia entre Apache CXF y Axis

Daniel Kulp
fuente
1
Gracias, ayuda mucho. Entonces, para las cosas básicas del servicio web, solo puedo usar java 1.6 para implementar ¿Y fue su implementación de jax-ws en java 1.5? ¿O se agregó después de 1.6? Si necesito funciones adicionales, ¿puedo usar CXF?
Maverick Riz
55
Fue agregado en 1.6. Si necesita soporte 1.5, necesitaría tomar CXF o el impl de referencia JAX-WS o similar.
Daniel Kulp
77
Y, en su mayor parte, si comienza con el impl in-jdk JAX-WS, puede colocar CXF en cualquier momento y aún funcionaría.
Daniel Kulp
1
Tengo una pequeña duda ¿No es Metro -La implementación JAX-WS integrada en el JDK? ¿O Metro es más sofisticado que la implementación JAX-WS integrada en el JDK?
Dexter
16

En breve.

WSDL WS- * son independientes del lenguaje.

JAX-WS son estándares de Java para construir servicios web.

Apache CXF y Apache Axis 2 son dos implementaciones de JAX-WS. También ofrecen implementaciones JAX-RS para que pueda crear servicios Restful.

CXF tiene una mejor integración con Spring y Camel ( camel-cxf ). Y Axis 2 parece no tener una versión activa.

chenrui
fuente
15

Encontré con CXF: la integración con Spring es muy fácil. Además, proporciona varias características como:

  1. Personalización de las funciones de registro
  2. Interceptor entrante y saliente
  3. Seguridad de nivel de aplicación
  4. Fácil manejo de excepciones mediante fallas personalizadas.

Para obtener más detalles, si lo desea, consulte este enlace:

http://predic8.com/axis2-cxf-jax-ws-comparison.htm

http://www.ibm.com/developerworks/java/library/j-jws11/

Y, leí los enlaces anteriores, es bastante útil para mí. Espero que funcione para ti también.

Gracias !

puru
fuente
3

La organización de servicios web incluye algunas pautas, como BP (Perfil básico) 1.0 y BP (Perfil básico) 1.1. Base en las Directrices Todos los usuarios de lenguaje (Java / .Net) lanzan la especificación con implementación predeterminada En Java Base en BP 1.0 La especificación es JAX-RPC y la especificación 1.0 es JAX-WS

La implementación predeterminada de JAX-WS es RI (Implementación de referencia) Base en el requisito / Elección de que podemos cambiar la implementación (RI / AXIS-2 / CXF)

Cuando estamos usando java 1.6, ese caso en JDK ya está disponible, por lo que no se requiere ningún otro jar. Si desea utilizar una implementación diferente, ese caso requiere un jar de implementación particular.

Axis-2 y CXF provienen de Apache

Abhijit Patra
fuente