2008-11-17 20 views
75

Estoy en el proceso de investigar/comparar CXF y Spring-WS para servicios web? Necesito funcionar tanto como proveedor como 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 orientarme en mi investigación.¿Qué marco es mejor CXF o Spring-WS?

  • ¿Qué experiencia tiene con cualquiera de estos marcos?
  • ¿Ha encontrado algún problema con cualquiera de los frameworks?
  • ¿Ha encontrado alguna de las funciones útiles que cualquiera de las dos proporciona posiblemente?

Respuesta

20

Creo que la mayor diferencia es la primavera-WS es única 'contrato de primera', mientras que yo creo CXF es normalmente "contrato-pasado.

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

contrato de última comienza con el código de Java, por lo que por lo general es más fácil para empezar con.

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

+16

JAX-WS soporta el contrato de primera enfoque, que es la forma en que las personas que hacen desarrollos serios lo están usando, creo. Entonces definitivamente no es una buena manera de diferenciar las pilas JAX-WS y Spring WS. En realidad, Spring WS no se puede comparar con JAX-WS, Spring WS es solo una pila de WS minimalista. –

12

Tenemos una experiencia con CXF y su predecesor es XFire y puedo recomendarlo como un framework sólido, rápido (creando y ejecutando WS) y confiable.

En cuanto a las cuestiones que se pueden reunió con CXF ver mi post https://stackoverflow.com/questions/289977/recommended-framework-for-java-web-services#290205 y estoy de acuerdo con toolkit, que la mayor diferencia entre los marcos son ideológicamente: ¿cuál es el primer código (es decir, la interfaz) o contrato (es decir, WSDL). Ver algunos detalles aquí:

32

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

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

No creo que Spring-WS ofrezca ninguna ventaja que supere 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.

72

sobre Apache CXF:

  • CXF soporta varios estándares incluyendo el jabón, el perfil de WSI Basic, WSDL, WS-Addressing, WS-Policy, WS-Reliable Messaging, WS-Security, WS-SecurityPolicy, y WS -SecureConversation.
  • Apache CXF ofrece los enfoques contract-last (comenzando con Java) y Contract-first (comenzando con WSDL).
  • Apache CXF implementa JAX-WS y JAX-RS.

Sobre WS primavera:

  • primavera WS ofrece "sólo" contrato de primera, a partir de un esquema XSD.
  • Spring WS admite SOAP, WS-Security, WS-Addressing.

Así que, al final, veo primavera WS como un marco de servicios web mínima pero tenga en cuenta que no es así (en mi opinión) tienen alguna ventaja sobre Apache CXF (que se integra muy bien con la primavera) . Entre ambos, escogería Apache CXF.

4

Apache CXF:

Positivos clave:

❶ más ampliamente utilizado de servicios web estándar ahora; Mejora sobre AXIS2, que está ahora gradualmente siendo sustituido por Apache CXF

❷ intuitiva & Fácil de usar (menos necesidad de codificación en comparación con AXIS2)

❸ separación limpia de front-end, como JAX-WS, desde el código del núcleo

❹ totalmente compatible con JAX-WS, JAX-RS demás &

❺ mejor rendimiento en todas marco disponible con una sobrecarga mínima de cálculo

❻ es compatible con gran variedad de modelos de front-end

❼ Soporta tanto JAX-WS & JAX-RS (para servicios RESTful)

❽ Soporta JBI & SDO (no soportado en AXIS2)

❾ Compatible con Spring Framework

preocupaciones clave:

❶ no apoya orquestación & WS Transacciones aún

❷ No es compatible con WSDL 2.0 Aún

WS primavera:

clave Positivos:

❶ mejor en términos de apoyo a los Servicios Web Contrato primer enfoque de desarrollo

❷ hace cumplir las normas & las mejores prácticas por las limitaciones Framework (no hay manera de salir de él & por lo tanto, la limitación también)

❸ Soporta Anotaciones de primavera, así como JAX-WS

❹ código menos desde la perspectiva del desarrollador

❺ mejor alineado con la primavera Tecnología Pila (también pila de arquitectura similar a Spring MVC) incluyendo Spring Security

clave preocupaciones:

❶ menor número de WS * Especificaciones soportadas (no es totalmente compatible con JAX-WS)

❷ primavera se ofrece como & por lo tanto, otros marcos compatible con Java estándar apoyar mejor soporte de estándares

❸ único apoyo Contrato primer Servicios Web Modelo de Desarrollo

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

+5

Debe mencionarse que la respuesta viene de aquí: https://dzone.com/articles/apache-cxf-vs-apache-axis-vs –

+0

Re enfatizando el mismo punto. Por favor cite la fuente original. – Espresso

Cuestiones relacionadas