JAX-WS

JAX-WS (Java API for XML Web Services) es un conjunto de interfaces (API) del lenguaje de programación Java dedicado al desarrollo de servicios web. El conjunto es parte de la plataforma Java EE. Al igual que otras API de Java EE, JAX-WS utiliza anotaciones, introducidas en Java SE 5, para simplificar el desarrollo e implementaciones de clientes y terminales de servicios web. JAX-WS es parte del Java Web Service Development Pack (Jwsdp) e incluye arquitectura Java para XML Binding (JAXB) y SOAP. Una de las grandes ventajas de esta implementación es que puede reutilizar la mayoría de las características, sin tocar servidores empresariales como el proyecto Glassfish.

JAX-WS es un nuevo modelo de programación que simplifica el desarrollo de aplicaciones al admitir un modelo estándar basado en anotaciones para desarrollar aplicaciones y clientes de Servicios Web. La especificación JAX - WS se alinea estratégicamente con la tendencia actual de la industria hacia un modelo de mensajería más centrado en los documentos y reemplaza el modelo centrado en los objetos definido por JAX-RPC. Con un servicio centrado en el documento, la lógica de facto se mantiene separada del contenido del documento. El servicio recibe un documento XML, que solo contiene datos. No se invocan métodos específicos, pero el servicio web aplica su lógica de negocio al documento, cuyo contenido determina el flujo de trabajo de procesamiento. El servicio web de una agencia de viajes es un buen ejemplo de un servicio centrado en los documentos. El servicio recibe una solicitud: un documento XML que contiene los detalles del itinerario de viaje que desea realizar (fechas, lugares para visitar, alojamiento preferido, etc.), el Servicio procesa la solicitud en función del contenido del documento. JAX-WS es el modelo estratégico de programación para el desarrollo de Servicios Web. La implementación de la programación estándar del JAX-WS proporciona mejoras importantes como: mejor independencia de plataforma para aplicaciones Java, anotaciones, invocar servicios Web de forma asíncrona, el cliente (dinámico y estático), Soporte para mecanismo optimizado de transmisión de mensajes (MTOM, método para la transmisión de datos binarios desde y hacia el servicio Web), el soporte para SOAP. El proyecto proporciona el núcleo del proyecto Metro (pila de servicios web de alto rendimiento, ampliable y fácil de usar, que recopila las características que encierran todas las necesidades para crear servicios web), dentro de la comunidad GlassFish.

Los servicios Web, desde su aparición, se han propuesto como la principal solución en la realización de arquitecturas interoperables, interconectadas e integrables. La verdadera innovación fue hacer uso de estándares abiertos utilizando XML y HTTP (modelo soap), junto con la presencia del lenguaje de descripción de Servicios Web (WSDL) y la introducción de un sistema de búsqueda/publicación (UDDI). Aunque este proyecto recibió un nuevo impulso en el desarrollo, por otro lado hubo fuertes impedimentos: los diversos fabricantes y actores involucrados en el desarrollo de componentes e implementaciones para servicios Web obstaculizaron este proceso al impedir que los organismos responsables de definir estándares y especificaciones se mantuvieran al día. Esto llevó a la creación de especificaciones e implementaciones propietarias, contrarias y contradictorias a los objetivos iniciales de la realización de servicios web. En 2003, los diversos fabricantes, ahora conscientes de lo insignificante que era tener Servicios Web escritos en diferentes idiomas, se unieron para encontrar una solución a este problema. Así nació la organización WS-I (Web Services Interoperability Organization), como su nombre lo indica, para garantizar la interoperabilidad de los servicios web. En poco tiempo se unieron todos los actores más importantes del sector, con el fin de crear un nuevo estándar que garantice los principios originales de los Servicios Web. El consorcio trabajó en la investigación y selección del subconjunto mínimo de normas y especificaciones comunes a todas las implementaciones, que luego se agruparon y recopilaron en perfiles de acuerdo con los objetivos que querían lograr, trabajo aún en curso. Bajo WS-I, Sun produjo recientemente una nueva implementación llamada WSIT, que consiste en la API de Java para servicios Web XML.

Aunque las raíces de JAX-WS provienen de JAX-RPC, el primero es un componente completamente diferente del segundo. Una de las principales diferencias entre los dos es el modelo de programación: un servicio web basado en JAX - WS utiliza anotaciones (por ejemplo, @WebService) para declarar puntos finales de servicio web, mientras que JAX-RPC utiliza el procedimiento de invocación de método remoto (RMI). JAX-WS tiene soporte para enviar mensajes XML a través de HTTP. El uso de anotaciones evita la necesidad de descriptores de implementación. Además, el JAX-WS tiene otras características adicionales como devoluciones de llamada asíncronas. Aunque hay numerosas diferencias, JAX-WS y JAX-RPC pueden coexistir sin problemas.

Ahora veamos un breve ejemplo de creación de un simple servicio Web JAX-WS. Escribimos un programa simple que calcula el área y el perímetro de un polígono regular, luego creamos una clase "FunzioniPoligoniRegolari" , donde definimos la interfaz abstracta "MioWs, donde declaramos los métodos que vamos a implementar; luego creamos nuestro main. Punto final. Publish (String address, object implementer) es un método que crea y publica un punto final para el objeto" implementer "a la dirección dada" address ". Tenga en cuenta que el esquema WSDL se crea automáticamente. También creamos la clase" implementation "donde implementaremos los métodos declarados en la clase abstracta anterior. Una vez que haya compilado el código fuente usando el comando javac, tiene que hacer un paso más: llame a la herramienta Wsgen como se muestra a continuación: el principal activa un servidor http en el puerto fijo (en nuestro caso 8080). Cuando se ejecuta la aplicación, Java SE 6 tiene una pequeña aplicación de servidor web que publicará el servicio Web en la dirección dada http://localhost:8080/funzioncerchio mientras la JVM está funcionando. Podemos verificar que el servicio Web se está ejecutando viendo el archivo WSDL (Web Services Description Language) del servicio Web" circle function " . Mientras la JVM se está ejecutando, abrimos un navegador y vamos a la siguiente dirección: http://localhost:8080/funzionicerchio? WSDL Si ve una gran cantidad de líneas XML que describen las características detrás de este servicio web, entonces la realización fue exitosa.

Algunas de las anotaciones más utilizadas son:

El comando de línea de comandos wsgen genera los artefactos portátiles utilizados en los servicios web JAX - WS. Esta herramienta lee una clase endpoint de un servicio web y genera todos los artefactos necesarios para la generación e invocación de Servicios Web. Wsgen generará un archivo WSDL solo cuando se le solicite. La opción-cp especifica dónde encontrar la clase de implementación de servicio. Esta herramienta generará una serie de archivos fuente en una subcarpeta llamada wsgen, que luego compila. Aunque no es necesario editar estos archivos, puede ver cómo JAX-WS crea los archivos stub que utiliza en la publicación del servicio web buscando sus códigos fuente. Los archivos originales deben estar en el paquete respectivo al llamar a la herramienta Wsgen. De lo contrario, puede obtener un error diciendo que la clase en la que está presente la anotación "@WebService" , como un Functioncircle, debe declarar javax por separado. jws. Servicio web. elemento targetNamespace porque los archivos de código fuente no forman parte del paquete.

Los manejadores JAX-WS son interceptores que se pueden conectar al entorno de ejecución JAX - WS para procesar más mensajes entrantes y salientes. Son independientes del código de nivel de aplicación y pueden proporcionar capacidades de procesamiento de mensajes de bajo nivel. JAX-WS define dos tipos básicos de manejadores: manejadores lógicos y manejadores de protocolos. Los primeros pueden procesar la carga útil del mensaje y las propiedades de almacenamiento en el contexto del mensaje. Estos últimos operan en Propiedades de contexto de mensaje y mensajes de protocolos específicos. Se limitan a configuraciones específicas de jabón y a menudo se les conoce como "manipuladores de jabón" . Un manejador se ensambla en una cadena de manejadores conocida como una cadena de manejador. En el lado del cliente, puede configurarlos mediante programación. En el lado del servidor, utilice la anotación @ HandlerChain para hacer referencia a un archivo de configuración XML que describe los controladores que se incluyen.

Plataforma Java

Arquitectura Java para enlace XML

Java Architecture for XML Binding (JAXB) es una de las API de la Java Enterprise Edition, forma parte del Java Web Services Development Pack (Jwsdp) y es una de...

XML

Esta página se basa en el artículo de Wikipedia: Fuente, Autores, Licencia Creative Commons Reconocimiento-CompartirIgual.
This page is based on the Wikipedia article: Source, Authors, Creative Commons Attribution-ShareAlike License.
contactos
Política de privacidad , Descargos de responsabilidad