Experiencias con JAX-WS 2.0

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.

Escrito en Java. 20 Comentarios »

Para pensar un poco …

Ayer me enviaron unos cuantos juegos de lógica y la verdad que los acabé sacando por cabezón xD. Muchos llegan casi al nivel de desesperantes por momentos salvo que tengas una mágica inspiración. Pero bueno todo es cosa de autocontrol y respirar profundo jiji.

- Juego de las ranas y las piedras: El juego consiste en llevar las 3 ranas de la izquierda a la derecha y viceversa. Las ranas pueden saltar a la piedra libre que tienen enfrente (no hay saltos atrás) o pueden saltar por encima de una rana si hay una piedra libre detrás de dicha rana.El truco en este juego consistía en saber posicionar las ranas en los tres primeros movimientos. Si se consigue que queden una marrón, una verde, marrón, verde, … la piedra pivote hará el resto porque podremos ir moviendo el “espacio” hasta que lleguemos a la posición esperada.

juego_ranas.jpg

- Juego de la familia y la linterna: El objetivo es ayudar a la familia a cruzar el puente (tronco), teniendo en cuenta que es de noche y ocupan la linterna para cruzar. Hay unas cuantas restricciones como que cada miembro cruza a una velocidad distinta, que el puente sólo resiste un máximo de 2 personas, que un par debe cruzar a la velocidad del miembro más lento o que la linterna sólo dura 30 segundos. En este juego el truco estaba en saber conjuntar eficientemente los tiempos de cada integrante de la familia para que los paseos por el puente nos costasen lo menos posible y en saber usar a los “rápidos” como pivotes para ir y volver. Al final me sobró un segundo y todo :-p.

juego_linterna.jpg

- Juego de los misioneros y los caníbales: Una verdadera locura, misionero arriba, misionero abajo. Recordaba este juego de cuando mi profesora de Inteligencia Artificial en la facultad nos lo hizo resolver, aunque me acordaba ya de poco. Asi que mis humildes misioneros fueron devorados varias veces antes de lograr el objetivo final, que era conquistar el mundo al otro lado del río. La idea es la siguiente: En una orilla, tres misioneros y tres caníbales. En la otra, veintinueve mil millones de dólares a repartir entre los seis. Una barca se balancea junto a la primera orilla. En la barca caben dos personas, y debe ir al menos uno para remar de una orilla a otra. Hay que pasar los seis de una orilla a la otra. El único problema reside en que los caníbales se comerán a los misioneros que tengan cerca cuando los caníbales sean más que los misioneros; es decir, si en una orilla hay tres caníbales y dos misioneros, los dos misioneros serán devorados; lo mismo ocurre cuando hay dos caníbales y un misionero; es más, si a una orilla donde hay dos caníbales llega la barca con un misionero, aunque este no se baje de la barca, se lo comerán.

juego_misioneros.jpg

- Juego de la balsa y la familia: Este fue uno de los que más me costó resolver la verdad. El truco para mi está en saber usar a dos personajes clave que son el policía y el ladrón porque la familia tiene muchas restricciones de cruce de balsa entre sus miembros y la cosa se pone peliaguda muchas veces. La idea es muy sencilla: hacer que una familia, un policía y un ladrón crucen el río de lado a lado usando para ello una balsa con un máximo de dos personas. Y levantan las manos como condenados cuando lo consigues :-p.

juego_balsa.jpg

- Juego del pastor, el repollo, la oveja y el lobo: La verdad, no se si fue porque era el último que hacía y después del de la balsa estaba ya hecho a todo o qué pero salió … a la primera ! Me pareció bastante fácil y natural, pero la verdad no se si era cosa de la inspiración o del sueño.

juego_repollo.jpg