Tecnologías de la Sociedad de la Información

Servicios y Tecnologías que aportan valor añadido a la Sociedad de la Información

Artículos por j2ee

Continuamos con la serie de tutoriales sobre WS. En esta ocasión vamos a ver como descargar e instalar Axis2.

Logo de Axis2

Primero vamos a descargar la distribución de Axis2 desde aquí. En nuestro caso, vamos a descargar la versión 1.4 que es la última que ha salido en el momento de escribir este tutorial. Descargamos la “Standard Binary Distribution”.

Axis2 necesita para funcionar la versión 1.4 o superior del JDK de J2SE. Escribiendo “java -version” en la consola de comandos podremos ver la versión que tenemos instalada.

Una vez descargado el zip de la distribución, lo descomprimimos. Hay que crear una variable de entorno que se llame AXIS2_HOME y que tendrá el path en el que hayamos descomprimido el fichero.

Con esto ya tenemos instalado Axis2, a partir de aquí comenzarán las tareas para crear nuestros WS. En el próximo tutorial veremos como crear uno a partir de una clase java (POJO).

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.

continua leyendo…

Hace no mucho tiempo, en la empresa en la que trabajamos tuvimos que crear una serie de Web Services en J2EE para unos clientes, y aunque al principio nos limitaron a que teníamos que utilizar Axis 1.2 y la cosa estaba clara, al final pudimos elegir otras soluciones para su desarrollo. Y aquí es donde comenzaron las dudas:

  • ¿Es mejor AXIS2 o JAXWS?
  • ¿Cómo genero a partir del wsdl las clases del WS?
  • ¿Cómo creo un WS que mantenga sesiones?
  • ¿Cómo puedo controlar el fin de sesión en el WS?

En fin, que había muchas dudas, y no encontramos en Internet mucha información en español que hablara del tema. Así que una vez que terminamos, pensamos que toda esa experiencia que habíamos acumulado, podría servir a otra gente que se hallara en la misma situación.

Con esa idea nació este blog y aunque al final no sea el único contenido del mismo, sí queremos que sea una parte importante. Poco a poco iremos “colgando” una serie de tutoriales en los que explicaremos aspectos más o menos avanzados sobre WS.

Esperamos que os sean de utilidad.

Annotation @WebService (javax.jws.WebService)

La @WebService annotation se utiliza para especificar que la clase es un servicio web o que la interfaz define un servicio web. El Cuadro 2 enumera los parámetros que esta anotación puede aceptar.

Cuadro 2. @WebService Parámetros de anotación

Class
Name
Descripción
String
endpointInterface
El nombre completo de la interfaz de endpoint de servicio (SEI) que definen el servicio de contrato abstracto servicio web.
String
name
El servicio web de nombre.
String
portName
El servicio web de nombre del puerto.
String
serviceName
El servicio web de nombre de servicio.
String
targetNamespace
Si la @ WebService.targetNamespace anotación está en una SEI, el targetNamespacese se utiliza para el espacio de nombres del wsdl: portTypeXML y elementos asociados.
String
wsdlLocation
La ubicación de un archivo WSDL predefinidos que describe el servicio.

Annotation @WebMethod (javax.jws.WebMethod)

La @ WebMethod anotación personaliza un método que se expone como una operación de servicio Web. El método asociado debe ser pública. De lo contrario, recibirá un error. Además, los parámetros, el retorno de valor, y las excepciones del método asociado debe seguir las normas definidas en JAX-RPC 1.1 , la sección 5. Tenga en cuenta que el método no está obligada a lanzar una java.rmi.RemoteException. El Cuadro 3 muestra los parámetros para esta anotación.

Cuadro 3. @WebMethod Parámetros de anotación

Class or Type
Name
Descripción
String
action
La acción de esta operación.
boolean
exclude
Puede establecer este parámetro para verdaderomarcar rápidamente un método como no se expone como un método web. El valor predeterminado es falso.
String
operationName
Nombre de la wsdl:operation que coincidan con este método.

Otros útiles anotaciones con JAX-WS 2.0 le permiten personalizar aún más los parámetros y tipos devueltos se define en el archivo WSDL.