services paso jax invocar desde crear consumir como cero java web-services spring java-ee frameworks

paso - soap web service java



Framework/biblioteca de Java Web Service, ¿cuál es mejor y por qué? (6)

He usado el precursor de CXF, XFire, desde hace un tiempo y no ha sido tan malo. En ese momento, migramos de Axis por dos razones principales: rendimiento y facilidad de desarrollo. En ese momento (no sé si esto es cierto ahora), el rendimiento de XFire fue mucho mejor que cualquier otro, y con el desarrollo basado en anotaciones, en lugar de tener que ejecutar la generación de stub, fue realmente muy fácil agregar nuevos servicios web.

CXF parece ser más de lo mismo, pero mejor: aún no hemos migrado debido a limitaciones en el tiempo de desarrollo, además de no tener una razón apremiante para hacerlo (además de la relativa falta de documentación hace 6-12 meses no era demasiado alentador). Además, en realidad no he evaluado últimamente el mercado, así que no puedo decirles cómo CXF se enfrenta a sus competidores contemporáneos.

En cuanto a tus puntos:

  1. No se genera un código repetitivo, el WSDL se crea automáticamente a partir de las anotaciones de la clase de servicio y se publica por el servidor.
  2. La implementación en Tomcat fue relativamente simple. Simplemente defina otro servlet en web.xml y asigne un patrón de URL a este servlet.
  3. Nuestros servicios web se implementaron en archivos WAR, no estoy seguro de cuáles son las alternativas de hecho, pero esta parece ser la forma predeterminada y obvia de hacerlo.
  4. POJOs funcionan bien inicialmente; ahora hemos trasladado la mayor parte de la creación de objetos del servicio web a Spring para conectar dependencias condicional más complejas y no hemos tenido problemas con esto.
  5. La documentación era un punto débil con CXF originalmente, aunque acaba de echar un vistazo, parece estar mejor ahora. El diseño general y la arquitectura parecen relativamente sanos; la asignación de espacio en los propios filtros para modificar los detalles de la transmisión no fue muy dolorosa, y en general se ha considerado extender las clases existentes (por lo que los métodos razonables se marcan protegidos en lugar de privados, por ejemplo).
  6. JAX-WS es totalmente compatible con CXF.

Así que probablemente soy un poco imparcial ya que no probé con los otros, pero daré mi visto bueno para echarle un vistazo a CXF. Es bastante rápido, relativamente simple de usar y bastante poderoso si necesita ajustarlo.

Actualmente estoy evaluando la cantidad de frameworks de servicios web en Java. Necesito un marco de servicios web que me ayude a exponer algunas funcionalidades de las aplicaciones existentes que se ejecutan en JBoss. La aplicación se desarrolla principalmente con Spring y POJO (sin EJB).

Lo que necesito es un marco con las siguientes propiedades:

  1. Debe proporcionar herramientas para la generación automática de código repetitivo y ahorrar tiempo al eliminar tareas repetitivas, por ejemplo, herramientas que generan WSDL desde Java (java2wsdl), herramientas que generan puntos finales, etc.
  2. Las aplicaciones se deben implementar fácilmente en la plataforma J2EE existente (JBoss), esto significa que debe contener menos archivos de configuración posible (como axis2.xml en framework axis2).
    • También se prefiere poder implementar el servicio web dentro del archivo .war de la aplicación existente. (Parece que Axis2 necesita un archivo separado para la aplicación de servicio web).
    • Será genial usar una combinación de POJOs y Spring .
    • En general, el marco debe tener una estructura y un diseño limpios (por ejemplo, Spring-WS carece de él), una buena documentación y todo lo que caracteriza a un buen software.
    • Es preferible que el marco incorpore algunas características estándar como JAX-WS, etc. en lugar de métodos específicos del vendedor.

He examinado brevemente

  • Axis2
  • Apache CXF
  • y el Metro de Sun
  • Spring WS

Pero aún así es difícil decidir qué usar en mi caso:

  • Axis2 parece tener un nivel muy bajo, requiere un archivo de aplicaciones separado y muchas configuraciones
  • Spring WS parece ser demasiado opaco y "sofisticado para fines de impresión (?)"
  • Apache CXF y Metro probablemente sean dos marcos de los que prefiero elegir, pero aún así

Necesito su opinión y experiencia sobre el uso de algunos de ellos en aplicaciones del mundo real.


Hemos probado Metro y CXF y hemos mantenido CXF porque Metro incluye demasiadas dependencias como las API de Sun en sus archivos jar, lo que dificulta la integración en otro servidor de aplicaciones aparte de Glassfish. CXF tiene un empaquetado más limpio con dependencias externas explícitas. Tampoco pudimos habilitar la compresión Gzip con Metro mientras funcionaba como un hechizo con CXF.


Iría con Spring WS primero y XFire segundo. Soy usuario de Spring, así que estoy acostumbrado a la opacidad.


Solo utilicé el Spring WS porque eso es lo que se me dijo que usara, pero era un marco de uso bastante fácil. Si tiene que ir con todo lo demás, iría con XFire debido al soporte de JAX-WS.


Usaré CXF. Es fácil de usar que Axis2


XFire ahora Apache CXF era mucho más fácil de usar que Axis. Hice algo rápido al usarlo donde Axis parecía demasiado complicado. No miré Spring WS.