Pregunta

¿Estoy en el proceso de investigar / comparar CXF y Spring-WS para servicios web? Necesito funcionar como proveedor y consumidor de WS. En pocas palabras, me han dicho que Spring-WS es más configurable, pero CXF es más fácil de poner en funcionamiento. Esta pregunta es subjetiva, pero me ayudará a dirigirme en mi investigación.

  • ¿Qué experiencia tiene con cualquiera de estos marcos?
  • ¿Te has encontrado con alguna dificultad con cualquiera de los marcos?
  • ¿Ha encontrado alguna característica útil proporcionada por cualquiera que posiblemente no sea proporcionada por el otro?
¿Fue útil?

Solución

Creo que la mayor diferencia es que Spring-WS es only 'contract-first', mientras que creo que CXF normalmente es 'contract-last'.

http: // static. springsource.org/spring-ws/sites/1.5/reference/html/why-contract-first.html

El último contrato comienza con el código Java, por lo que generalmente es más fácil comenzar.

Sin embargo, el WSDL que crea tiende a ser más frágil.

Otros consejos

Acerca de Apache CXF:

  • CXF admite varios estándares, incluidos SOAP, el perfil básico de WSI, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy y WS-SecureConversation.
  • Apache CXF ofrece los enfoques de último contrato (comenzando con Java) y primer contrato (comenzando con WSDL).
  • Apache CXF implementa JAX-WS y JAX-RS.

Acerca de Spring WS:

  • Spring WS ofrece " solo " contrato primero, a partir de un esquema XSD.
  • Spring WS admite SOAP, WS-Security, WS-Addressing.

Entonces, al final, veo Spring WS como un marco de servicios web mínimo pero considero que (en mi opinión) no tiene ninguna ventaja sobre Apache CXF (que se integra extremadamente bien con Primavera). Entre ambos, elegiría Apache CXF.

CXF, de ninguna manera, le impide comenzar con un contrato (WSDL). Usé ambos productos para crear un servicio web.

En CXF, utilicé Maven y el complemento Maven, llamando al objetivo wsimport para generar el SEI (interfaz) que luego implementé. Después de implementar la interfaz para contener la lógica de servicio real y configurar mi implementación de bean beans.xml , dejo que Maven lo empaque en un archivo war para su implementación. Todo el ejercicio no podría haber sido más fácil.

No creo que Spring-WS ofrezca ventajas que superen la falta de JAX-WS. CXF ya le permite usar Spring para conectar sus beans y también tiene una implementación completa de JAX-WS.

Tenemos experiencia con CXF y es su predecesor XFire y puedo recomendarlo como un marco sólido, rápido (creación y ejecución de WS) y confiable.

Con respecto a los problemas que puede encontrar con CXF, vea mi publicación https: / /stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205 Y estoy de acuerdo con toolkit , que la mayor diferencia entre marcos es ideológica: cuál es el primer código (es decir, la interfaz) o contrato (es decir, wsdl). Vea algunos detalles aquí:

Apache CXF:

Positivos clave:

& # 10102; El estándar de servicios web más utilizado ahora; Mejora sobre AXIS2, que ahora está siendo reemplazado gradualmente por Apache CXF

& # 10103; Intuitivo & amp; Fácil de usar (se requiere menos codificación en comparación con AXIS2)

& # 10104; Separación limpia de los front-end, como JAX-WS, del código central

& # 10105; Totalmente compatible con JAX-WS, JAX-RS & amp; otros

& # 10106; El mejor rendimiento en todo el marco disponible con una sobrecarga de cómputo mínima

& # 10107; Admite una amplia variedad de modelos frontales

& # 10108; Admite JAX-WS y amp; JAX-RS (para servicios relajantes)

& # 10109; Soporta JBI & amp; SDO (no compatible con AXIS2)

& # 10110; Compatible con Spring Framework

Preocupaciones clave:

& # 10102; No es compatible con Orchestration & amp; Transacciones de WS todavía

& # 10103; Todavía no es compatible con WSDL 2.0

Spring WS:

Positivos clave:

& # 10102; Lo mejor en términos de compatibilidad con el Enfoque de desarrollo de servicios web primero por contrato

& # 10103; Aplica estándares y amp; Mejores prácticas por restricciones de marco (sin salida y, por lo tanto, también limitación)

& # 10104; Admite anotaciones de primavera y JAX-WS

& # 10105; Menos código desde la perspectiva del desarrollador

& # 10106; Mejor alineado con Spring Technology Stack (también una pila arquitectónica similar a Spring MVC) incluyendo Spring Security

Preocupaciones clave:

& # 10102; Número mínimo de WS- * Especificaciones compatibles (no es totalmente compatible con JAX-WS)

& # 10103; Spring se ofrece como estándar & amp; por lo tanto, otros marcos compatibles con Java admiten un mejor soporte de estándares

& # 10104; Solo es compatible con el modelo de desarrollo de servicios web por contrato primero

Fuente: https://dzone.com/articles/apache -cxf-vs-apache-axis-vs

Otra opción a considerar en esta comparación es Enunciate .

Especialmente si te gusta comenzar con Java primero.

Eche un vistazo a una publicación relacionada en: Creación de un servicio web con Spring-WS

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