Foro sobre Java EE > JAX-WS / JAX-RS implementaciones
Hola Andrea, te comento:
En WebServices existen dos modalidades: SOAP y REST.
SOAP es intercambio de mensajes SOAP (que son mensajes envueltos en XML). Dichos mensajes se intercambian entre dos puntos a través del puerto 80, el cliente envía un mensaje XML en formato SOAP, dicho mensaje es recibido por el servidor, que desencapsula dicho mensaje en el formato correspondiente (SOAP es multilenguaje, acepta varios lenguajes, entre ellos Java), que recibe los datos, procesa una respuesta y la devuelve (si hay fallo, devuelve un error).
JAX WS es la implementación estándar de web services SOAP en Java. Viene desde la versión de JDK 6.
Después, Rest es una implementación posterior. Más rica, no sólo utiliza un tipo de mensaje HTTP para el intercambio de mensajes, si no que permite más mensajes. Esto es, con Rest puedes tener un cliente que envíe mensajes HTTP de tipo GET, PUT, POST y DELETE. Cada mensaje enviará los datos correspondientes asociados hacia el servidor, que, recibirá la petición, la entenderá, y delegará en el método correspondiente. GET sirve para recuperar un dato desde el cliente al servidor, PUT para insertar un dato, POST para enviar información para modificar y DELETE para eliminar información del servidor.
En Java existe la implementación Jax RS (es una implementación). Ahora mismo existe la versión 1 y se está desarrollando la 2.
Por otro lado, existen otras implementaciones que tú has comentado: Jersey, RESTeasy, Restlet
Apache CXF se adapta a Jax WS y Jax RS y se integra bien con Spring, pero no sé decirte más.
Apache Wink es un framework de tipo Rest.
No puedo decirte más porque no conozco...
Un saludo y gracias,
Hola,
Gracias por tu respuesta.
Entonces, por lo que me dices, JAX-WS y JAX-RS no son especificaciones sino implementaciones.
Mi pregunta final sería, por qué alguien usaría Apache CXF, Axis2 o Jersey si puede usar JAX-WS o JAX-RS directamente?
Hola Andrea,
Hasta dónde yo conozco, Jax Ws es una implementación de SOAP, y Jax RS una implementación de Rest. Ambas vienen por defecto desde la versión de Java Se 6 (creo recordar). En la actualidad, Jax Rs está evolucionando a la versión 2.0.
Desde mi punto de vista, los frameworks que comentas proporcionan capas superiores a la funcionalidad ofrecida por Jax ws o Jax rs (pero no los he utilizado). Pueden simplificar tareas, ofrecer capas extra, etc.... (repito, es una opinión ante una respuesta que no conozco en profundidad, pero que si tuviera que contestar, contestaría esto).
Un saludo y encantada de verte por aquí amiga!
Gracias! xD
JAX-WS y JAX-RS no son implementaciones. Ambos son APIs. JAX-RS significa JAVA API for RESTFUL WEB SERVICES. Las implementaciones de JAX-RS por ejemplo son JERSEY. Apache CXF, RESTeasy, etc
Buenas,
JAX-WS es una especificacion y no una implementacion, como bien dices en tu primer mensaje.
Las implementaciones mas importantes son:
-Apache CXF - http://cxf.apache.org/docs/why-cxf.html
-Apache Axis 2 - http://axis.apache.org/axis2/java/core/
Por otro lado tienes la implementation de Spring Web Services, que no sigue la especificacion Jax-Ws pero que quizas encuentres mas facil de utilizar. http://projects.spring.io/spring-ws/
Personalmente yo he utilizado mucho CXF, que es la implementacion de jax-ws que viene integrada por defecto en JBOSS.
Un saludo
Hola a todos,
He estado leyendo un poco sobre los web services en Java, y vaya que es un lío para alguien nuevo en esto.
Para comenzar, parece que hay dos formas de crear servicios web en Java: JAX-WS y JAX-RS. Al parecer, JAX-WS y JAX-RS son especificaciones, por lo que si usted va a usar algunas de estas dos formas de crear servicios web en Java, tiene que elegir alguna implementación.
Dicho lo dicho, tengo algunas dudas:
1. Todo lo que he dicho y la jerga que he usado, son correctos?
2. Qué implementaciones existen para JAX-WS?
Por lo que vi en la wikipedia, para JAX-RS existen las siguientes implementaciones:
Apache CXF
Jersey
RESTeasy
Restlet
Apache Wink
Saludos y muchas gracias.