Una de las deficiencias en utilizar "Web-Services" Nativos (*.wsd) es que estos deben ser escritos desde cero, mediante Axis es posible activar ("deploy") cualquier Clase Java residente en un sistema.
Calculadora.java
public class Calculadora { public int sumar(int x, int y) { return x + y; } public int restar(int x, int y) { return x - y; } } |
La Clase anterior representa la misma utilizada para generar el "Web-Service" nativo (*.wsd) descrito en la sección anterior, sin embargo, en esta sección se asume que esta misma Clase ya residía en el sistema, en otras palabras, representa un Clase Java compilada .class
.
El primer paso para activar dicha Clase Java (.class) como "Web-Service" es colocarla bajo el alcance de Axis, esto implica colocarla bajo el "Web-Archive" donde reside Axis:
+-usr/local/tomcat/webapps+--\ | /---------------------------/ | \ +-axis-+ | |-*.jws (Clases/Métodos con Web-Services Nativos) | +-WEB-INF+ | +-web.xml | +-classes--+ | +- Calculadora.class |
Al ser colocada la Clase bajo el directorio classes
, Axis ya tiene acceso a ésta, el siguiente paso es llevar acabo la activación ("deployment") del "Web-Service".
Para observar los "Web-Services" actualmente activados dentro de Axis basta visitar el siguiente URL:
http://www.servidorprueba.com:8080/axis/servlet/AxisServlet
El URL anterior corresponde aquel definido en el archivo web.xml del "Web-Archive declarado en la instalación y configuración de Axis , como se puede observar aún no esta activado ("deployed") el "Web-Service", para llevar acabo la activación es utilizado un WSDD ("Web-Services Deployment Descriptor").
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="Calculo" provider="java:RPC"> <parameter name="className" value="Calculadora"/> <parameter name="allowedMethods" value="*"/> </service> </deployment> |
Los elementos anteriores describen la manera en que debe ser activado ("deployed") el "Web-Service", el elemento service name="Calculo"
indica el nombre bajo el que será activado el "Web-Service", mientras parameter name="className"
es utilizado para indicar la Clase Java que será activada como "Web-Service", y parameter name="allowedMethods"
es empleado para indicar los métodos de la Clase que serán accesibles, en este caso se están indicando todos los métodos que incluyen sumar
y restar
.
Una vez definido este archivo WSDD, es necesario invocarlo en Axis esto se hace mediante el siguiente comando:
$ java org.apache.axis.client.AdminClient Calculo.wsdd |
Al ser invocado el comando anterior se activa ("deploy") el "Web-Service" dentro de Axis, si ahora visita el URL http://www.servidorprueba.com:8080/axis/servlet/AxisServlet
encontrará que se encuentra en la lista el "Web-Service" Calculo
.
Dentro de la lista de "Web-Services" que reside en el URL http://www.servidorprueba.com:8080/axis/servlet/AxisServlet
se puede observar que existe un link llamado WSDL
, al seguir este link será generado un archivo en WSDL que contiene el "Web-Service" seleccionado.
Mediante esta descripción WSDL es que podrá distribuir su "Web-Service" para que este sea implementado en otros lenguajes como C++
,Perl
y .Net
, de la misma manera, es este mismo archivo el que es utilizado para publicar "Web-Services" a un directorio distribuido como UDDI o ebXML.