Desde hace ya un tiempo llevo jugueteando con Metro (el “otro” Metro).
Metro es un stack para servicios web propuesto por Sun, el cual contiene a JAX-WS (lo que incluye a JAXB, JAXP, StAX, SAAJ, etc.) y WSIT (WS-*). Se trata pues de una “ventanilla única” con todo lo necesario para construir servicios web, desde el más simple “hola mundo” hasta servicios web confiables, seguros y transaccionales que involucran a servicios WCF del . NET Framework.
Intentaré ir desgranando en sucesivos posts cada una de las librerías que se usan intensivamente en la implementación oficial de Java para Web Services, a citar: JAXB para los mapeos XML-Java y viceversa, JAXP (tratamiento de XML, muy parecida a JDOM), StAX (Streaming API for XML), con tecnología Pull Parshing para poder tratar los documentos XML de forma más rápida, con menor consumo de recursos y pudiendo saltar adelante/atrás y siendo igual para lectura y escritura, SAAJ (permite producir y consumir mensajes que sean conformes a la especificación SOAP 1.1 y a la nota SOAP with Attachments(SOAP con Adjuntos), …Asimismo, en próximos posts intentaré ir elaborando unas guías rápidas sobre como utilizar JAX-WS de manera sencilla.
Algunos detalles preliminares:
- Definitivamente dejo como mi servidor JEE open source JBoss (sobre la tan cacareada versión 5.0 ni han mejorado sustancialmente la mítica consola administrativa ni funcionaba como hubiese deseado Java6, además de tocarme demasiado las narices con el tema de los MBeans xD) para pasarme a GlassFish V2, más en concreto, el Sun Application Server Version 9.1, que también es un servidor certificado JEE 5.0.
- Definitivamente mi suite oficial de desarrollo de Web Services en el 2008 es JAX-WS 2.0 (y la 2.1 en cuanto pueda, ya que incluye JAXB 2.1 jiji) en detrimento del nunca bien ponderado Axis2 (su idea de soltar directamente los archivos *.wsd sobre el WAR en el inefable Tomcat nunca me pareció algo “aceptable”). En realidad, Axis no es exactamente lo mismo que JAX-WS y solo cubre una implementación OpenSource de SOAP que proporciona un entorno de ejecución para Servicios Web implementados en Java.