it-swarm-es.com

Marcos JAX-RS

He estado trabajando con la implementación de referencia JAX-RS (Jersey). Sé de al menos otros dos marcos (Restlet y Apache CXF).

Mi pregunta es: ¿Alguien ha hecho alguna comparación entre esos marcos y, de ser así, qué marco recomendaría y por qué?

50
Shimi Bandiel

FWIW estamos utilizando Jersey como su paquete lleno de características (por ejemplo, WADL, vistas implícitas, soporte XML/JSON/Atom) tiene una gran y vibrante comunidad de desarrolladores detrás y tiene una gran integración de primavera .

Si usa JBoss/SEAM, es posible que RESTeasy se integre un poco mejor, pero si usa Spring for Dependency Injection, Jersey parece la implementación más fácil, más popular, activa y funcional.

30
James Strachan

Restlet tiene una extensa lista de extensiones para Spring, WADL, XML, JSON y muchas más, incluida una extensión para API JAX-RS.

También es el único marco disponible en seis ediciones consistentes :

  • Java SE
  • Java EE
  • Kit de herramientas web de Google
  • Motor de aplicaciones de Google
  • Android
  • Entornos OSGi

Sus principales beneficios son:

  • aPI de cliente y servidor totalmente simétrica cuando JAX-RS se diseñó para el procesamiento del lado del servidor
  • conectores para otros protocolos que no sean HTTP (asignación a semántica HTTP) cuando JAX-RS es solo HTTP
  • alcance de características mucho más amplio que incluye control de enrutamiento URI completo a través de la API Restlet (pero puede integrarse con Servlet si es necesario)
  • provisión completa para soporte de NIO

La API JAX-RS puede ser una buena opción si está restringido a las API aprobadas por JCP (¡entonces no use Spring ni ninguna extensión de los proyectos JAX-RS como Jersey y RESTeasy!), Pero de lo contrario, Restlet es el marco más maduro ( inicialmente lanzado en 2005) y le dará, en su versión 2.0, todos los beneficios de las anotaciones combinadas con un marco orientado a clases potente y extensible.

Por más tiempo lista de características, consulte esta página .

Saludos cordiales, Jerome Louvel

Restlet ~ Fundador y desarrollador principal ~ http://www.restlet.org

26
Jerome Louvel

Mi equipo y yo usamos Restlet ampliamente, pero no sus características JAX-RS. Puedo decirle que me han impresionado mucho los desarrolladores y la comunidad de Restlet; son muy activos, comprometidos, receptivos y comprometidos con un marco estable, eficiente, confiable y efectivo. Lo siento, no puedo abordar directamente su interés principal, pero pensé que podría encontrar valiosa mi experiencia con Restlet.

7
Avi Flax

Mi colega menciona por qué estamos usando RESTeasy para nuestro proyecto actual en servicios web RESTful en Java EE con RESTeasy (JAX-RS) :

Su implementación de referencia, Jersey, no fue elegida porque tuvimos problemas para integrarla bien con EJB3 y Seam 2.0.

Estamos utilizando la implementación RESTeasy de JAX-RS, porque no tuvimos problemas para integrarlo con nuestros EJB y Seam. También tiene suficiente documentación.

Hay otra implementación de Apache, pero no la he probado porque usa una versión anterior de JAX-RS.

Finalmente, hay otro marco para los servicios web RESTful para Java llamado Restlet, pero no lo favorecimos porque al momento de escribir este artículo, está utilizando una arquitectura personalizada, a pesar de que el soporte JAX-RS está en los trabajos.

6
Peter Hilton

Descubrí que es muy fácil trabajar con Apache Wink, es compatible con JAX-RS y tiene muchas características más allá del estándar.

6
Shimi Bandiel

Parece que hay 4 implementaciones JAX-RS decentes, por lo que probablemente estés de acuerdo con cualquiera de ellas. Por lo que vale, he encontrado Jersey (1.0.2) realmente agradable hasta ahora. Mis necesidades son bastante modestas, un servicio de back-end simple, cuidar de la fontanería, etc. Y esa Jersey lo hace bastante bien.

6
StaxMan

No usaría ningún marco. Solo el que viene con su servidor de aplicaciones. Si utiliza datos específicos de un marco, perderá la portabilidad y no sabrá nada si el proveedor del servidor de aplicaciones incluye una versión diferente de su marco favorito. Me atendré a jax-ws.

0