services paso invocar desde crear consumir como java web-services

paso - soap web service java



Necesito aprender servicios web en Java. ¿Cuáles son los diferentes tipos en él? (4)

Recientemente, decidí comenzar a aprender acerca de los servicios web de Java y cuando comencé a buscar un tutorial para servicios web de Java en Google, descubrí que hay muchos tipos de servicios web basados ​​en XML, basados ​​en SOAP, y también en servicios web RESTful.

Además, descubrí que hay una especificación JAX-WS para servicios web basados ​​en xml, y especificación JAX-RS para crear servicios web RESTful.

P1) Me confundí, sería genial si alguien puede ayudarme a entender la diferencia entre estos diferentes tipos de servicios web, para que pueda decidir cuál aprender primero.

Q2) Además, quiero aprender a fondo sobre la creación de diferentes tipos de servicios web en Java. ¿Hay algún tutorial o recurso que pueda dar una idea de cada tipo de servicio web y una comparación entre ellos?

Q3) en función de qué escenarios y condiciones debería decidir si deseo crear un servicio web basado en XML en lugar de un servicio SOAP o si debería ir con el servicio RESTful.


  1. Los servicios web SOAP están basados ​​en estándares y son compatibles con casi todas las plataformas de software: dependen en gran medida de XML y tienen soporte para transacciones, seguridad, mensajes asíncronos y muchos otros problemas. Es un estándar bastante grande y complicado, pero cubre casi todas las situaciones de mensajería. Por otro lado, los servicios RESTful se basan en el protocolo HTTP y los verbos (GET, POST, PUT, DELETE) para intercambiar mensajes en cualquier formato, preferiblemente JSON y XML. Es un enfoque arquitectónico bastante simple y elegante.
  2. Como en todos los temas de Java World, existen varias bibliotecas para compilar / consumir servicios web. En el lado SOAP tiene el estándar JAX-WS y Apache Axis , y en REST puede usar Restlets o Spring REST Facilities entre otras bibliotecas.

Con la pregunta 3, este artículo establece que los servicios RESTful son apropiados en estos escenarios:

  • Si tienes ancho de banda limitado
  • Si sus operaciones son sin estado: no se preserva la información de una invocación a la siguiente, y cada solicitud se trata de manera independiente.
  • Si sus clientes requieren el almacenamiento en caché.

Mientras que SOAP es el camino a seguir cuando:

  • Si requiere procesamiento asincrónico
  • Si necesita contrato / interfaces formales
  • En su servicio, las operaciones son estables: por ejemplo, almacena información / datos en una solicitud y utiliza esa información almacenada en la siguiente.

SOAP WS es compatible tanto con llamadas de procedimiento remoto (es decir, RPC) como con estilos de integración de middleware (MOM) orientados a mensajes. Restful Web Service admite solo el estilo de integración RPC.

El SOAP WS es el protocolo de transporte neutral. Admite múltiples protocolos como HTTP (S), mensajería, TCP, UDP SMTP, etc. El REST es específico del protocolo de transporte. Admite solo protocolos HTTP o HTTPS.

SOAP WS solo permite el formato de datos XML. Usted define las operaciones, que se canalizan a través de POST. El objetivo es acceder a las operaciones nombradas y exponer la lógica de la aplicación como un servicio. El REST permite múltiples formatos de datos como XML, datos JSON, texto, HTML, etc. Se puede utilizar cualquier navegador porque el enfoque REST usa las operaciones web GET, PUT, POST y DELETE estándar. El objetivo es acceder a los recursos nombrados y exponer los datos como un servicio. REST tiene soporte AJAX. Puede usar el objeto XMLHttpRequest. Bueno para operaciones sin estado CRUD (Crear, Leer, Actualizar y Eliminar). GET - representa () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()

Las lecturas basadas en SOAP no se pueden almacenar en caché. Las lecturas basadas en REST pueden almacenarse en caché. Realiza y escala mejor. SOAP WS admite tanto seguridad SSL como WS-security, que agrega algunas características de seguridad empresarial como mantener la seguridad hasta el punto en que se necesita, mantener las identidades a través de intermediarios y no solo punto a punto SSL, asegurando diferentes partes del mensaje con diferentes algoritmos de seguridad, etc. REST solo admite seguridad SSL punto a punto. El SSL encripta todo el mensaje, ya sea que todo sea sensible o no. El SOAP tiene soporte integral tanto para la gestión de transacciones basada en ACID para transacciones de corta duración como para la gestión de transacciones basada en compensaciones para transacciones de larga duración. También es compatible con la confirmación en dos fases en todos los recursos distribuidos. REST admite transacciones, pero no es compatible con ACID ni puede proporcionar una confirmación de dos fases en recursos transaccionales distribuidos ya que está limitado por su protocolo HTTP.

SOAP tiene una lógica de éxito o de reintento incorporada y proporciona una fiabilidad de extremo a extremo incluso a través de intermediarios SOAP. REST no tiene un sistema de mensajería estándar y espera que los clientes invoquen el servicio para tratar las fallas de comunicación reintentando.

fuente http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html


Si su aplicación a menudo usa el protocolo http, entonces REST es mejor debido a su bajo peso, y sabiendo que su aplicación solo usa protocolo HTTP, elegir SOAP no es tan bueno porque es pesado, es mejor tomar una decisión sobre la selección de servicios web basada en los protocolos que usamos en nuestras aplicaciones.


Q1) Aquí hay un par de cosas para leer o google más:

Principales diferencias entre los servicios web SOAP y RESTful en java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest

Depende de ti, qué es lo que quieres aprender primero. Te recomendaría que eches un vistazo al marco CXF . Puede construir ambos servicios de descanso / jabón.

Q2) Aquí hay un par de buenos tutoriales para el jabón (los tuve marcados):

http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226

http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/

http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html

La mejor forma de aprender no es solo leer tutoriales. Pero primero deberías ir a través de tutoriales para obtener una idea básica para que puedas ver que puedes producir algo (o no) y eso te motivará.

SO es una gran manera de aprender tecnología particular (o más), la gente hace muchas preguntas extrañas, y hay respuestas aún más extrañas. Pero, en general, aprenderá sobre formas de resolver problemas de otra manera. Tal vez no sabías de esa manera, tal vez no pudiste pensarlo por ti mismo.

Suscríbase a un par de etiquetas que le resulten interesantes y sea persistente, haga buenas preguntas y trate de dar buenas respuestas y le garantizo que aprenderá esto a medida que pase el tiempo (si es persistente).

Q3) Tendrás que responder a esto tú mismo. Primero, al decidir qué vas a construir, después de todo tendrás que pensar en algún mini proyecto o algo así y tomarlo desde allí.

Si decide utilizar CXF como su marco de trabajo para crear servicios REST / SOAP, le recomiendo que busque este libro Apache CXF Web Service Development . Es fantástico, no es difícil de leer y tampoco demasiado grande (gana).