Mostrando las entradas con la etiqueta web services. Mostrar todas las entradas
Mostrando las entradas con la etiqueta web services. Mostrar todas las entradas

lunes, 1 de septiembre de 2008

axis2: Ejemplos de la guia de usuario en Eclipse

Preparar los ejemplos

Ver Ejemplos de la guia de usuario

Compilar y ejecutar los ejemplos desde Eclipse

Crear un nuevo proyecto en Eclipse accediendo al menu File -> New -> Java Project. El nombre del proyecto puede ser cualquiera, pero la ruta del codigo fuente a importar es la correspondiente a los ejemplos de la guia de usuario:


Al presionar el boton "Next" accedera a la ventana de "Java Settings". Observe la estructura del proyecto en la siguiente figura:


Seleccione la solapa "Libraries" para agregar las dependencias necesarias para poder compilar los ejemplos. Las librerias requeridas son las que aparecen en la siguiente figura:


Presione el boton "Finish" para concluir con la creacion del proyecto. Ahora es momento de compilar los ejemplos.
En la perspectiva Java, podra encontrar el archivo build.xml en la solapa "Package Explorer". Seleccione este archivo y acceda al menu Run -> Run As. Aparecera la siguiente ventana donde se debe seleccionar la opcion "Ant Build":


En la solapa "Console" podra observar el resultado de la compilacion:
Buildfile: C:\axis2-1.3-samples\samples\userguide\build.xml
compile:
[javac] Compiling 17 source files to
C:\axis2-1.3-samples\samples\userguide\build\classes
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[jar] Building jar:
C:\axis2-1.3-samples\samples\userguide\build\userguide.jar

generate.service:
[jar] Building jar: C:\axis2-1.3-samples\samples\userguide\build\MyService.aar
[copy] Copying 1 file to C:\axis2-1.3-samples\repository\services
[jar] Building jar:
C:\axis2-1.3-samples\samples\userguide\build\MyServiceWithModule.aar
[copy] Copying 1 file to C:\axis2-1.3-samples\repository\services
[jar] Building jar:
C:\axis2-1.3-samples\samples\userguide\build\WsaMappingService.aar
[copy] Copying 1 file to C:\axis2-1.3-samples\repository\services

BUILD SUCCESSFUL
Total time: 1 second
El codigo es empaquetado y almecenado en el directory "Repository". En la siguiente figura se muestran los nuevos paquetes generados:


Ejecutar Axis2 server

Es posible ejecutar el servidor de Axis2 incluido en la distribucion desde Eclipse. Para esto es necesario utilizar la facilidad de Eclipse para ejecutar aplicaciones externas. Acceda al menu Run -> External Tools -> Open External Tools Dialog... y observara la ventana que se muestra en la figura:


En el marco izquierdo, seleccione la opcion "Program" y luego presione el icono "New Launch Configuration". Modifique el nombre de la configuracion y la ubicacion de la aplicacion a ejecutar, en este caso, axis2server. Aparecera un nuevo item bajo la opcion "Program"; seleccionelo y modifique sus datos. Mediante el boton "Browse File System", busque el archivo con el cual se inicia el servidor de Axis2.:


Luego seleccione la solapa "Environment", para agregar una nueva variable de entorno. Presione el boton "New" y agregue la variable AXIS2_HOME, como se muestra en la figura:


Presione el boton "OK" en la ventana "Edit Environment Variable":


Luego presione el boton "Run" en la ventana "External Tools". El resultado sera un error debido a que faltan agregar dependencias para ejecutar el servidor de Axis2 y los ejemplos:

Las siguiente librerias son necesarias:
  • annogen-0.1.0.jar
  • axis2-adb-1.3.jar
  • backport-util-concurrent-2.2.jar
  • commons-codec-1.3.jar
  • commons-fileupload-1.1.1.jar
  • commons-httpclient-3.0.1.jar
  • httpcore-4.0-alpha5.jar
  • mex-impl-1.3.jar
  • wstx-asl-3.2.1.jar
  • XmlSchema-1.3.2.jar
Luego de agregar estar librerias al classpath del proyecto, ejecute nuevamente el servidor de Axis2. En la solapa "Console" podra observar la salida generada:
Using JAVA_HOME    c:\dev\jdk1.5.0_11
Using AXIS2_HOME C:\axis2-1.3-samples
[INFO] [SimpleAxisServer] Starting
[INFO] [SimpleAxisServer] Using the Axis2 RepositoryC:\axis2-1.3-samples\repository
[SimpleAxisServer] Using the Axis2 RepositoryC:\axis2-1.3-samples\repository
[SimpleAxisServer] Using the Axis2 Configuration FileC:\axis2-1.3-samples\conf\axis2.xml
[INFO] Deploying module: addressing-1.3
[INFO] Deploying module: metadataExchange-1.3
[INFO] Deploying module: ping-1.3
[INFO] Deploying module: script-1.3
[INFO] Deploying module: soapmonitor-1.3
[INFO] script module activated
[INFO] Deploying Web service: sample-MyService.aar
[INFO] Deploying Web service: sample-WsaMappingService.aar
[INFO] Deploying Web service: version.aar
[INFO] [SimpleAxisServer] Started
[SimpleAxisServer] Started
[INFO] Listening on port 8080
Acceda mediante un navegador a la URL http://localhost:8080/axis2/services/ para ver los web services desplegados:


Vinculos:
  • Axis2

axis2: Ejemplos de la guia de usuario

Preparar los ejemplos

Descargar la distribucion binaria de Axis2 del siguiente vinculo.

Para ejecutar los ejemplos correspondientes a la guia de usuario, se utilizara la mayor parte de la distribucion de Axis2. A continuacion se muestra el contenido de la misma:


Para comenzar, es posible crear un directorio llamado axis2-samples donde se alojaran los siguientes elementos de la distribucion:
  • repository
  • conf
  • bin
  • log4j.properties
  • commons-logging.properties
Puede ver que en la figura anterior estos elementos estan seleccionados.

Del directorio lib solo se agregaran las librerias necesarias para poder compilar y ejecutar los ejemplos correspondientes a la guia de usuario de Axis2, que son:


En el directorio samples es necesario agregar los ejemplos en el sub-directorio userguide. Observe el contenido final del directorio axis2-samples:


Compilacion de los ejemplos

Para compilar los ejemplos inicie una consola, acceda al directorio con los ejemplos y ejecute Ant:
$> cd axis2-samples/samples/userguide
$> ant
A continuacion puede observar el resultado de una compilacion exitosa:


Una vez compilados los servicios y los clientes que los consumen correspondientes a la guia de usuario, es necesario iniciar el servidor de Axis2 incluido en la distribucion, y luego invocar al cliente correspondiente.
Para iniciar el servidor de Axis2, inicie una nueva consola y ejecute el archivo axis2server.bat:
$> cd axis2-samples/bin
$> axis2server.bat
En el caso de un sistema Linux, sera necesario ejecutar el archivo axis2server.sh.
La siguiente figura muestra la salida por consola correspondiente a la ejecucion del servidor:


Ahora es necesario ejecutar alguno de los clientes de web services incluidos en los ejemplos para verificar el funcionamiento de Axis2.
Para ejecutar un cliente es necesario hacer uso de Ant, ya que el archivo build.xml correspondiente a los ejemplos incluye los targets necesarios para compilar y ejecutar los diversos clientes disponibles.

Para ejecutar el cliente ..., inicie una nueva consola, acceda el sub-directorio con los ejemplos y ejecute Ant empleando el target apropiado:
$> cd axis2-samples/samples/userguide
$> ant run.client.blocking
La siguiente figura muestra la salida por consola correspondiente a la ejecucion del cliente:


Este es el mensaje SOAP que se muestra por consola:

Vinculos:

jueves, 19 de junio de 2008

ws: Mecanismo de invocacion de un Web Service

Invocacion en el servidor
  1. El mensaje SOAP es recibido desde el transporte (HTTP, JMS).
  2. Los manejadores de mensajes que se encargan del preprocesamiento de los mismos son invocados (persistir mensajes, analizar el encabezado, etc.).
  3. Determinar el servicio del mensaje (que operacion del WSDL invoca el mensaje).
  4. Para la operacion del WSDL, determinar el metodo a invocar en la clase Java apropiada. A esta clase se la llama Java target y a este proceso se lo conoce como dispatching.
  5. Entregar el mensaje SOAP al sub-sistema encargado de la serializacion para que lo deserialice en objetos Java que seran pasados como parametros al Java target.
  6. Invocar el Java target usando los parametros generados por el sub-sistema de serializacion y obtener el objecto Java retornado.
  7. Entregar el objeto Java retornado al sub-sistema de serializacion para ser serializado en XML segun lo especificado por el WSDL para el mensaje de retorno.
  8. Encapsular en un mensaje SOAP el XML generado a partir del objeto Java retornado, segun lo especificado por el WSDL para el mensaje de retorno.
  9. Entregar el mensaje SOAP al transporte para ser enviado al cliente.
Nota: Si ocurre una excepcion durante este proceso, la misma debe ser encapsulada en un mensaje SOAP del tipo fault y enviada al cliente.

Invocacion en el Cliente
  1. Se crea una instancia de la clase que implementa la interfaz Java para el endpoint del Web Service (SEI). El sub-sistema de invocacion emplea algun factory para crear instancias de SEI (Service Endpoint Interface). Las instancias se crean en el momento de ejecucion o se obtienen mediante JNDI. Las instancias SEI son implementadas usando proxies Java y manejadores de invocacion (invocation handler).

jax-ws: Que es y que mejora sobre JAX-RPC

Que es JAX-WS?

JAX-WS no es un entorno para el desarrollo de aplicaciones SOA sino que es un conjunto de herramientas que facilitan las tareas requeridas para consumir y desarrollar Web Services, los componentes de un entorno distribuido basado en SOA.

Mejoras introducidas por JAX-WS

Algunas de las mejoras introducidas por JAX-WS sobre su predecesor JAX-RPC son las siguientes:
  • Especificacion simplificada
  • Mejoras en el mapeo WSDL a Java
  • Soporte para endpoints REST
  • Reemplazo del data binding de XML Schema a Java por JAXB 2.0
  • Uso de annotations para controlar la creacion del WSDL a partir de la interfaz Java
  • Deployment descriptors eliminados por el uso de annotations
  • Introduccion de las interfaces Dispatch y Provider para manejo directo de XML salteando el data binding de JAXB
Los datos presentados en este articulo fueron extraidos del libro "SOA Using Java Web Services" by Mark D. Hansen.

martes, 27 de mayo de 2008

soapui: Cliente para consumir un Web Service con Apache CXF

SoapUI ofrece una interfaz a la herramienta de consola wsdl2java incluida en la distribucion de Apache CXF.

Configuracion de Apache CXF en SoapUI

Asegurece de disponer de SoapUI y Apache CXF instalados en su sistema. Verifique que SoapUI dispone de la configuracion requerida para ejecutar las herramientas provistas por CXF. Para hacerlo, acceda al menu File -> Preferencies en SoapUI y aparecera la ventana de preferencias. Active la solapa con el nombre "Tools" como se muestra en la imagen:

Para el item CXF 2.x ingrese la ubicacion donde se encuentra instalado Apache CXF y luego presione el boton "Ok".

Una vez que CXF esta configurado en SoapUI es posible comenzar con el proceso de generacion de codigo.

Generacion de codigo con CXF mediante SoapUI

En SoapUI, seleccione el menu Tools -> Apache CXF y la siguiente ventana aparecera:

La solapa que aparece activa es la primera, con el nombre "Basic". Introduzca la ubicacion del WSDL, local o remoto, y especifique la ruta donde el codigo generado es alojado. Seleccione la ultima opcion, "All Code", para generar todo el codigo posible.
Luego active la solapa "Advanced" que tiene la siguiente apariencia:

Asegurese de seleccionar la opcion "Compile" y especifique la ubicacion donde las clases compiladas seran alojadas.
Solo resta presionar el boton "Generate" y una ventana mostrando el progreso de la generacion de codigo aparecera:

Al finalizar el proceso, aparecera un mensaje informandolo:

Podra encontrar en las ubicaciones configuradas el codigo fuente generado a partir del WSDL y la compilacion.

Vinculos:

jueves, 22 de mayo de 2008

soapui: Configurar Apache TcpMon en SoapUI 2.0

Configurar SoapUI para ejecutar TcpMon

Seleccione el menu File -> Preferencies y podra observar la ventana de preferencias de SoapUI. Active la solapa "Tools", para poder configurar la ubicacion de TcpMon:

Para definir la ubicacion de TcpMon, presione el boton "Browse" y busque en el sistema de archivos. Puede observar en la figura como TcpMon fue configurado en la ubicacion:
C:\tcpmon-1.0-bin
En la version 2.0 de SoapUI la forma de configurar TcpMon es igual, solo cambiar la distribucion de las solapas en la ventana de preferencias:

Luego, para ejecutar TcpMon desde SoapUI seleccion el menu Tools -> Launch TcpMon.

Vinculos:

lunes, 12 de mayo de 2008

soa: Que es y porque

SOA es el paradigma que permite crear sistemas distribuidos escalables y mantener su flexibilidad a medidad que crecen. Ademas permite acortar la brecha entre quienes estan mas cerca del negocio y quienes estan mas cerca de la tecnologia.

SOA se nutre de los siguientes elementos:
  • Servicios
  • Infraestructura
  • Politicas y procesos
Los sistemas distribuidos integrados mediante SOA tienen las siguientes caracteristicas:
  • Contienen codigo legacy: SOA no implica empezar de nuevo
  • Son heterogeneos: Diversas plataformas, lenguajes de programacion, etc. conviven
  • Son maduros: El sistema y los datos que administra han evolucionado con el tiempo
  • Son complejos
  • Tiene diversos duenos: Distintos equipos, organizaciones, presupuestos, calendarios, etc.
  • Son redundantes: Parte necesaria, parte accidental.
Los conceptos presentados en este articulo fueron extraidos del libro "SOA in Practice: The Art of Distributed System Design (Theory in Practice)" by Nicolai M. Josuttis.

Vinculos:

martes, 15 de abril de 2008

jax-ws: Java Web Services

Para comenzar es necesario descargar el binario correspondiente a la implementacion de referencia de JAX-WS. En la seccion de vinculos se encuentra una referencia al sitio donde puede encontrarlo. Los ejemplos presentados aqui refieren a la distribucion que se encuentra aqui.

Instalacion de JAX-WS

Una vez que se ha obtenido JAX-WS, es necesario instalarlo en el entorno local para comenzar a desarrollar web services. Para ello descomprima la distribucion de JAX-WS de la siguiente manera:
java -jar JAXWSx.x.x-.jar
por ejemplo:
java -jar JAXWS2.1.3-20071218.jar
De esto resultara el directorio jaxws-ri que contiene las librerias, documentacion y ejemplos.

A continuacion se desarrolla un web service y un cliente que consuma el servicio para mostrar, mediante un ejemplo sencillo el proceso de creacion de web services mediante JAX-WS.

Creacion del servicio Echo

El servicio Echo es definido por la interfaz java IEchoService.java y la clase java que implementa dicha interfaz EchoServiceImpl.java. A continuacion se presenta el codigo para ambas, clase e interfaz:
package test.echo.service;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService(serviceName="EchoService", name="Echo")
public class EchoService {

@WebMethod()
public String echo(String value) {
return value;
}
}
JAX-WS provee un conjunto de anotaciones que permite convertir una simple clase java en un web service. Como se observa en el ejemplo anterior, la clase java EchoService se encuentra decorada con la anotacion @WebService, que indica que dicha clase es un web service.

La anotacion @WebMethod es utilizada para indicar cuales de los metodos de la clase definida como servicio seran expuestos o publicados.

Las anotaciones que decoran a la clase EchoService deben ser procesadas para que JAX-WS genere las clases adicionales que dan forma al servicio Echo. Para esto es necesario emplear la herramienta Apt (Annotation processing tool) que se encuentra en la libreria jaxws-tools.jar. Esta herramienta puede ser invocada por linea de comando, de la siguiente manera:
apt -classpath C:\jaxws-ri\lib\FastInfoset.jar;
C:\jaxws-ri\lib\activation.jar;
C:\jaxws-ri\lib\http.jar;
C:\jaxws-ri\lib\jaxb-api.jar;
C:\jaxws-ri\lib\jaxb-impl.jar;
C:\jaxws-ri\lib\jaxb-xjc.jar;
C:\jaxws-ri\lib\jaxws-api.jar;
C:\jaxws-ri\lib\jaxws-rt.jar;
C:\jaxws-ri\lib\jaxws-tools.jar;
C:\jaxws-ri\lib\jsr173_api.jar;
C:\jaxws-ri\lib\jsr181-api.jar;
C:\jaxws-ri\lib\jsr250-api.jar;
C:\jaxws-ri\lib\resolver.jar;
C:\jaxws-ri\lib\saaj-api.jar;
C:\jaxws-ri\lib\saaj-impl.jar;
C:\jaxws-ri\lib\sjsxp.jar;
C:\jaxws-ri\lib\stax-ex.jar;
C:\jaxws-ri\lib\streambuffer.jar com.sun.tools.apt.Main
-d "jaxws-samples\bin"
-s "jaxws-samples\src"
-sourcepath "jaxws-samples\src"
-g:none "jaxws-samples\src\test\echo\service\IEchoService.java"
"jaxws-samples\src\test\echo\service\EchoServiceImpl.java"
o tambien puede ser incorparada al proceso de costruccion (build), invocada por Ant. Para hacerlo, es necesario primero declarar la tarea correspondiente a Apt, como se muestra a continuacion:

Luego es necesario definir los targets para invocar a la herramienta Apt y compilar la clase que contiene la logica del servicio Echo definida antes:

La ejecucion de Apt generara dos clases:
  • Echo.java
  • EchoResponse.java
en el directorio test/echo/service/jaxws. Estas dos son clases de bajo nivel y se encargan de encapsular los mensajes SOAP empleados en la consulta y en la respuesta. Son altamente dependientes de anotaciones empleadas por JAXB para el mapeo de XML a objetos java.

Si obtiene el siguiente mensaje de advertencia cuando se ejecuta la tarea que ejecuta apt:
apt:
[apt] warning: Annotation types without processors:
[javax.xml.bind.annotation.XmlRootElement,
javax.xml.bind.annotation.XmlAccessorType, javax.xml.bind.annotation.XmlType,
javax.xml.bind.annotation.XmlElement]
[apt] 1 warning
asegurece que apt recibe como argumento fork="true".

Si obtiene el siguiente mensaje:
apt:
[apt] java.lang.NoClassDefFoundError: com/sun/tools/apt/Main
[apt] Exception in thread "main"
asegurece que tools.jar, distribuido junto con el JRE, este incluido en el classpath empleado para ejecutar apt.

Ahora sera necesario generar el wsdl empleado para publicar el servicio. Para esto se debe emplear otra herramienta de JAX-WS llamada wsgen. A continuacion se muestra como ejecutar la herramienta wsgen por linea de comando:
C:\jaxws-ri\bin>wsgen -cp "project-home\jaxws-samples\bin"
-d "project-home\jaxws-samples\bin" -keep -wsdl
-r "project-home\jaxws-samples\src\test\echo\service\wsdl"
-s "project-home\jaxws-samples\src" test.echo.service.EchoService
o tambien puede ser incorparada al proceso de costruccion (build), invocada por Ant. Para hacerlo, es necesario primero declarar la tarea correspondiente a wsgen, como se muestra a continuacion:

Luego se define el target para invocar a la herramienta wsgen y generar el wsdl correspondiente al servicio:

Creacion del cliente para el servicio Echo

wsimport
Buildfile: C:\Documents and Settings\sg0203921\workspacee\jaxws-samples\build.xml
Trying to override old definition of task apt
wsimport:
[wsimport] parsing WSDL...
[wsimport] generating code...
[wsimport] compiling code...
BUILD SUCCESSFUL
Total time: 6 seconds
Clases generadas:
  • Echo_Type.java
  • Echo.java
  • EchoResponse.java
  • EchoService.java
  • ObjectFactory.java
  • package-info.java

Publicacion del servicio Echo en Tomcat 6

Vinculos:

martes, 8 de abril de 2008

Axis2: Echo web service

Creacion del Servicio

Para desarrollar el servicio de Echo, es necesario crear una clase java que sea el punto de entrada y que se pueda registrar y publicar en la apilacion web de Axis2. El codigo fuente correspondiente al servicio es el siguiente:
package test.echo.service;

public class EchoService {

public String echo(String value) {
return value;
}
}
Cada servicio requiere tambien una minima configuracion como la que se presenta a continuacion, que permite a Axis2 conocer los detalles necesarios sobre el servicio:


La configuracion presentada debe estar definida en un archivo xml cuyo nombre debe ser services.xml.

Empaquetado del servicio

Para poder desplegar el servicio en Tomcat a traves de la aplicacion web de Axis2, es necesario respetar una estructura predefinida. La clase java para el servicio debera estar ubicada en la estructura de directorio definido por la estructura de paquete, mientras que tambien es necesario incluir en archivo services.xml.

Publicacion del servicio

Aparecera entonces listado entre los servicios publicados a traves de la aplicacion web de Axis2 en Tomcat:


Al hacer click en el servicio "Echo", el wsdl correspondiente al servicio sera mostrado por el navegador:


Creacion del client para consumir el Servicio

Para crear un cliente que puede consumir el servicio Echo, se emplea la utilidad de Axis2 que permite generar codigo a partir de un wsdl, llamada wsdl2java.
Acceda el directorio AXIS_HOME/bin y ejecute desde alli esta utilidad, especificando algunos parametros, como se muestra a continuacion:
wsdl2java -uri http://localhost:8080/axis2/services/Echo?wsdl -p
test.echo.client -o C:\axis2-1.3\samples\userguide
Los parametros especificados tienen el siguiente singnificado:
uri: La URL donde el wsdl a partir del cual se generara el codigo se encuentra.
p: La estrutura de paquete que se desea para el codigo generado.
o: La ubicacion en el sistema de archivos donde seran generadas las clases.

El codigo generado consiste en las siguientes dos clases java:
  • EchoStub.java
  • EchoCallbackHandler.java


Estas clases contiene demasiadas lineas de codigo, dificil de entender y casi imposible de modificar. Es importante tener claro de utilizar las utilidades para generacion de codigo permite obtener una solucion rapida, pero no siempre efectiva.

Ahora es necesario crear el punto de entrada para la ejecucion del cliente del servicio. A continuacion se muestra un ejemplo:
package test.echo.client;

import java.rmi.RemoteException;

import org.apache.axis2.AxisFault;

public class EchoClient {

public void run() {
try {
EchoStub es = new EchoStub();

EchoStub.Echo request = new EchoStub.Echo();
request.setParam0("Hello, Echo!");

EchoStub.EchoResponse response = es.echo(request);

System.out.println(response.get_return());

} catch (AxisFault e) {
e.printStackTrace();

} catch (RemoteException re) {
re.printStackTrace();
}
}

public static void main(String[] args) throws Exception {
EchoClient ec = new EchoClient();
ec.run();
}
}
Al ejecutar el cliente, la salida que se vera por consola es: "Hello, Echo!"

Vinculos:

Axis2: Instalacion y ejemplos en Eclipse

Creacion de axis2.war

Para generar la aplicacion web que permite administrar servicios, es necesario acceder al directorio webapp y ejecutar el archivo de compilacion que alli se encuentra:
C:\axis2-1.3\webapp> ant
Buildfile: build.xml

init:
[mkdir] Created dir: C:\axis2-1.3\dist
[mkdir] Created dir: C:\axis2-1.3\dist\temp
[copy] Copying 53 files to C:\axis2-1.3\dist\temp

prepare.repo:
[copy] Copying 8 files to C:\axis2-1.3\dist\temp\WEB-INF
[mkdir] Created dir: C:\axis2-1.3\dist\temp\WEB-INF\conf
[copy] Copying 1 file to C:\axis2-1.3\dist\temp\WEB-INF\conf

create.war:
[war] Building war: C:\axis2-1.3\dist\axis2.war
[delete] Deleting directory C:\axis2-1.3\dist\temp

BUILD SUCCESSFUL
Total time: 6 seconds
Instalacion de axis2.war

Una vez que la aplicacion web se encuentra correctamente empaquetada, es necesario colocarla en el directorio webapps del servidor web:
C:\axis2-1.3\dist> cp axis2.war C:\apache-tomcat-6.0.14\webapps

Luego es necesario iniciar el servidor web:
C:\apache-tomcat-6.0.14\bin>startup
Using CATALINA_BASE: C:\apache-tomcat-6.0.14
Using CATALINA_HOME: C:\apache-tomcat-6.0.14
Using CATALINA_TMPDIR: C:\apache-tomcat-6.0.14\temp
Using JRE_HOME: c:\dev\jdk1.5.0_11


Podra observar en la consola algunos mensajes indicando el despliegue de aplicaciones, entre ellas la recien agregada:
INFO: Deploying web application archive axis2.war
[INFO] Deploying module: addressing-1.3
[INFO] Deploying module: metadataExchange-1.3
[INFO] Deploying module: ping-1.3
[INFO] Deploying module: script-1.3
[INFO] Deploying module: soapmonitor-1.3
[INFO] script module activated
[INFO] Deploying Web service: version.aar

Al iniciar el servidor, apunte su navegador a la siguiente URL: http://localhost:8080/axis2. Debera entonces visualizar lo siguiente:


Ahora es momento de crear un proyecto java en Eclipse y agregar a alguno de los ejemplos incluidos en la distribucion de Axis2. Por el momento incluiremos los ejemplos de la guia de usuario donde se muestra como crear diversos tipos de clientes de web services.

Primero es necesario crear el proyecto java:


El nombre del proyecto no es importante, pero si es necesario saber donde a sido desempaquetado Axis2, ya que en esa ubicacion es donde se encuentra el directorio samples con los ejemplos. Como se observa en la imagen el ejemplo importado es "userguide". Ahora es necesario verificar que todos los archivos requeridos son importandos, por lo cual debera presionar el boton "Next":


Para lograr una compilacion exitosa es necesario definir cuales y la ubicacion de las librerias requeridas. Estas tambien se encuentra en la ubicacion donde Axis2 fue desempaquetado, en el directorio lib. Entonces debera activar la solapa "Libraries" y luego presionar el boton "Add external jar":


Para terminar presione el boton "Finish", y el proyecto quedara creado, listo para compilar y ejecutar.

Vinculos:

Axis2: Web Services y Java

Introduccion

Apache Axis2 es la implementacion en Java para clientes y servidores de web services. Introduce mejoras respecto a su predecesor, Axis1, suministrando facilidades para:
  • Enviar mensajes SOAP (con o sin adjuntos)
  • Recibir y procesar mensajes SOAP
  • Crear web services desde clases Java
  • Crear clases Java para cliente y servidor a partir del WSDL
  • Crear y utilizar REST web services
  • Crear y utilizar web services que utilizan las recomendaciones WS-*
Manejo de mensajes SOAP

En Axis2, acciones como crear un mensaje SOAP, encriptarlo, enviarlo, procesarlo, etc., son conocidas como "fases". Axis2 define fases por defecto, como "pre-dispatch", "distpatch", "message processing", etc. Cada fase esta definida por un conjunto de "handlers". Axis2 permite definir que manejadores se aplican en cada fase y el orden en el cual son ejecutados. Ademas de los manejadores provistos por Axis2, es posible agregar manejadores particulares. Los "handlers" provienen de modulos como Rampart, que es la implementacion de WS-Security para web services en Java.

Distribuciones

Axis2 provee dos tipos de distribuciones:
  • Binaria estandard
  • WAR (Web Archive)
Distribucion binaria estandard

Provee las librerias y utilidades necesarias para crear aplicaciones que interactuan con web services. Los siguientes archivos se encuentran incluidos en esta distribucion:
/bin
+- axis2.bat
+- axis2.sh
+- axis2server.bat
+- axis2server.sh
+- java2wsdl.bat
+- java2wsdl.sh
+- wsdl2java.bat
+- wsdl2java.sh
+- setenv.sh
/lib
+- activation-1.1.jar
+- ...
+- XmlSchema.jar
/repository
+- /modules
+- modules.list
+- addressing-1.1.mar
+- ...
+- /services
+- services.list
+- version.aar
+- ...
/samples
+- ...
/webapp
+- ...
/conf
+- axis2.xml

LICENSE.txt
README.txt
NOTICE.txt
INSTALL.txt
release-notes.html
Utilidades

axis2.bat: Permite ejecutar comandos java sin necesidad de tener que incluir las librerias de axis en el classpath.
java2wsdl.bat: Permite crear la descripcion del web service a partir de clases java.
wsdl2java.bat: Permite crear las clases java necesarias para consumir un web service.
axis2server: Es un servidor web sencillo que permite enviar y recibir mensajes a una aplicacion.

Directorios

lib: Aloja las librerias de Axis2 y todas aquellas otras requeridas.
repository: Aloja modulos y web services.
conf: Incluye el archivo de despliegue global axis2.xml.
samples: Contiene ejemplos.

Vinculos: