En este primer tutorial haremos una pequeña comparativa entre Axis2 y JAXWS. En post posteriores ya hablaremos más en detalle de cada uno de ellos, explicando los pasos desde la instalación hasta el desarrollo de un WS.
Cuando empezamos a desarrollar nuestros WS, lógicamente la primera duda que tuvimos fue que framework debíamos utilizar. Entre las opciones que barajamos estaban Axis2 y JAXWS. Por supuesto hay más opciones, pero nos decantamos por éstas al ser las más extendidas.
Para las pruebas con Axis2 utilizamos la versión 1.2. La podéis descargar desde aquí. Una vez descargado e instalado tenemos dos opciones para generar nuestro WS.
- WS a partir de una clase Java (POJO). De esta forma Axis2 se encargará de generar los ficheros services.xml y el wsdl.
- WS a partir del wsdl. Generamos el wsdl de nuestro WS y dejamos que Axis2 se encargue de generar todas las clases necesarias para su implementación. Al final lo que tenemos que incluir es la lógica de negocio en la clase Skeleton.
Con JAXWS utilizamos la versión 2.1.2. La podéis descargar desde aquí. Al igual que con Axis2, podemos generar el WS a partir:
- De una clase java.
- O mediante el wsdl. Una vez generado el código tendremos una interfaz que será de la que tendrá que implementar nuestra clase principal (la que contenga toda la lógica de negocio).
Vamos a ver cuales son las ventajas y desventajas que le hemos visto a cada uno:
- Con Axis2 necesitamos tener instalado al menos la versión 1.4 del J2SE, mientras que para JAXWS al menos necesitamos la versión 1.5. Este puede ser un factor determinante, en el caso de que nuestro servidor de aplicaciones utilice la versión 1.4 y no podamos migrar a una versión posterior.
- Si generamos el WS a partir de las clases Java, no hemos encontrado muchas diferencias entre una y otra solución, aunque el wsdl que genera Axis2 es bastante engorroso (hay que tenerlo en cuenta a la hora de que alguien tenga que crear una aplicación cliente que se conecte a nuestro WS a partir del wsdl que nosotros le proporcionemos).
- Si la estructura de los mensajes SOAP es más compleja, o preferís generar vosotros el wsdl para tener más control sobre los mensajes SOAP (cosa que recomendamos), nosostros os recomendamos que utiliceis JAXWS. El código que genera Axis2 es realmente “infumable”. Veréis clases del estilo: clase_1, clase_2, así como un montón de clases anidadas. No sé si todo esto habrá cambiado en las versiones posteriores, pero desde luego en la versión que nosotros probamos (1.2), la legibilidad y reutilización del código era penosa. También veréis una vez que incluyais el código en vuestro IDE (Eclipse, NetBeans, etc…) que está lleno de warnings. En fin todo bastante engorroso. Sin embargo en JAXWS, al utilizar anotaciones, todo queda mucho más límpio y claro. Desde luego, este punto es el que nos hizo decantarnos por JAXWS.
- JAXWS al ser de Sun, podríamos decir que es más estandar que Axis2 que es de Apache.
Por todo lo anterior, nosotros os recomendamos que utiliceis JAXWS. Es cierto que al principio resulta más complicado por la poca información que existe de momento, (sobre todo en español), pero al final después de haber utilizado los dos frameworks, se ve todo muy claro. Sólo os recomentamos que utiliceis Axis2 en caso de que vuestro servidor de aplicaciones utilice la versión 1.4 de J2SE y no podáis migrarla.
Nos vemos en el próximo post



Comentarios
Dejar un comentario Trackback