PDF de programación - Seccion 5 - Servicios Web con AXIS

Imágen de pdf Seccion 5 - Servicios Web con AXIS

Seccion 5 - Servicios Web con AXISgráfica de visualizaciones

Publicado el 10 de Mayo del 2020
519 visualizaciones desde el 10 de Mayo del 2020
256,5 KB
67 paginas
Creado hace 12a (13/05/2011)
MII 733 -
Computación Móvil

José Miguel Rubio L.
Oficina 3-20
http://www.inf.ucv.cl/~jrubio
[email protected]

Sección 5
Servicios Web con
Axis

José Miguel Rubio L.
Oficina 3-20
http://www.inf.ucv.cl/~jrubio
[email protected]

Introducción I

 Los Servicios Web son la piedra angular de
cualquier desarrollo de sistemas distribuidos
actual

 Los ordenadores hablan unos a otros a través

de la web usando HTTP y otros protocolos.

 Un servicio web no tiene interfaz gráfica
 Provee una API de métodos que pueden ser

invocados en la web

 Diseñados para proveer “servicios”

Introducción II

 Futuro en el que los negocios exponen aplicaciones
a clientes como Servicios Web en los cuales se paga
por su uso

 Los sistemas de diferentes empresas cooperan unos

con otros a través de la Web

 Mientras que DCOM está basado en estándares
propietarios, los Servicios Web lo están en XML y
HTTP
 Son independientes de la plataforma y del lenguaje como

CORBA, pero más aceptados

 En .NET, IIS y la infraestructura ASP.NET compilan
las fuentes, construyen contratos WSDL y manejan
las peticiones y respuestas de los servicios web.

 En Java AXIS realiza una tarea muy similar

SOA

 Los servicios web han dado lugar a un nuevo

modo de diseñar sistemas distribuídos:
 Arquitecturas SOA (Service Oriented Arquitecture)

 SOA = colección de servicios

 Más información en http://www.service-

architecture.com/

 http://msdn.microsoft.com/Longhorn/understandin

g/pillars/Indigo/default.aspx?pull=/library/en-
us/dnbda/html/srorientwp.asp

Servicios Web

 Son un estándar basado en protocolos abiertos como

HTTP y SOAP
 SOAP es un vocabulario XML que representa RPCs

 http://www.w3.org/TR/SOAP

 No necesitas ni Windows ni .NET, ni UNIX ni Java para

escribir servicios web

 Servicio web = aplicación que:

 se ejecuta en un servidor web
 expone métodos a clientes
 escucha peticiones HTTP representando comandos que invocan

a métodos Web

 ejecuta métodos web y devuelve resultados

SOAP

 SOAP es un protocolo de comunicación basado en XML útil para la

comunicación entre aplicaciones
 Actualmente en versión 1.2, aunque la más utilizada es la 1.1

 http://www.w3.org/2000/xp/Group/

 SOAP es reconocido como el backbone de una nueva generación de

aplicaciones multi-platforma y multi-lenguaje, denominado Servicios Web.

 SOAP es un mecanismo para el intercambio de mensajes a través de

Internet independiente de los lenguajes de programación
 Es un protocolo de transporte

 Los clientes envían una petición SOAP mediante un HTTP POST

normalmente y reciben un código de respuesta (éxito o error) y una
respuesta SOAP

 Un mensaje SOAP es un mensaje XML que consta de un conjunto de

cabeceras opcionales y de un cuerpo.

Petición SOAP

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/so
ap/envelope/">

<soap:Body>

<getProductDetails

xmlns="http://warehouse.example.com/ws">

<productId>827635</productId>

</getProductDetails>

</soap:Body>

</soap:Envelope>

Respuesta SOAP

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>

<getProductDetailsResponse

xmlns="http://warehouse.example.com/ws">

<getProductDetailsResult>

<productName>Toptimate 3-Piece Set</productName>
<productId>827635</productId>
<description>3-Piece luggage set. Black

Polyester.</description>

<price>96.50</price>
<inStock>true</inStock>

</getProductDetailsResult>
</getProductDetailsResponse>

</soap:Body>

</soap:Envelope>

Apache AXIS

 AXIS es un motor SOAP, una framework para construir tanto la

parte servidora como cliente de Servicios Web.

 Además:

 Incluye un servidor
 Un servlet que se integra con motores de servlets como Tomcat
 Soporte extensivo del estándar Web Service Description Language

(WSDL)

 Una herramienta para generar clases Java a partir de WSDL
 Un conjunto de aplicaciones de ejemplo
 Una herramienta para la monitorización de los paquetes TCP/IP

 Open source, disponible en:

http://ws.apache.org/axis/
 WS-*

Apache Axis

 Axis es disponible en el fichero axis.jar;

que implementa la API JAX-RPC API
declarada en los ficheros JAR jaxrpc.jar
y saaj.jar. Requiere varias bibliotecas
de ayuda, para logeo, procesamiento
WSDL e introspección.

Características AXIS

 La arquitectura de AXIS está basada en cadenas
configurables de manejadores de mensajes que
implementan pequeños fragmentos de funcionalidad de
una manera flexible

 Sus propiedades principales:

 Rápido implementado con un procesador XML SAX
 Flexible
 Estable
 Orientado a Compontes
 Soporta WSDL 1.1

 Apache EXtensible Interaction System (AXIS)  motor

SOAP muy configurable

Proceso de Generación de
Programas con Axis

Instalación Axis

1. Bajarse la distribución de Apache Axis de

http://ws.apache.org/axis/
 La versión actual es 1.2RC2

 Bajarse tanto versión binaria (ya compilado) como fuente (contiene

ejemplos)

Instalar un contenedor de servlets como Tomcat 5

2.
3. Copiar el directorio axis-1_2RC2\webapps\axis contenido

4.

en la distribución de Axis en %TOMCAT_HOME\webapps
Instalar .jar terceros necesitados por Axis, copiándolos en
%TOMCAT_HOME%\common\lib:
 Junit.jar (Junit Testing System -

http://www.junit.org/index.htm)

 mail.jar (Java Mail -

http://java.sun.com/products/javamail/)

 activation.jar (Java Beans Activation Framework -

http://java.sun.com/products/javabeans/glasgow/jaf.html)

Instalación Axis

5. Arrancar el servidor web
6. Validar la instalación:

http://127.0.0.1:8080/axis/
(hacer clic en Validate)

7. Validar un SOAP endpoint:

http://localhost:8080/axis/s
ervices/Version?method=getVe
rsion
 Axis soporta HTTP GET

Creando Servicios Web .jws

 Axis tiene un método muy sencillo de

crear servicios web básicos, mediante el
mecanismo de ficheros .jws
Cuando alguien solicita a través de una url un

fichero .jws, éste es compilado y ejecutado

 Revisar ejemplo:

http://localhost:8080/axis/Echo
Headers.jws?method=list

Cómo Instalar un Nuevo
Servicio Web
 Dos pasos:

1. Copiar el código del servicio web bajo el directorio

%TOMCAT_HOME%\webapps\axis WAR
 En el directorio WEB-INF\classes de AXIS copiar las

clases de tu nuevo servicio web

2.

 Si tus clases están en un .jar simplemente copiarlas a

WEB-INF\lib

Informar al motor de AXIS acerca del nuevo fichero
 Se realiza haciendo un POST de un fichero de explotación

(wsdd) mediante el programa AdminClient
 El Web Service Deployment Descriptor describe en XML cuál

es el servicio web y qué métodos exporta

Compilando Servicios Web

 Para compilar servicios web necesitamos colocar en nuestro

CLASSPATH las dependencias de AXIS
set AXIS_HOME=c:\axis
set AXIS_LIB=%AXIS_HOME%\lib
set

AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons
-discovery.jar;%AXIS_LIB%\commons-
logging.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.ja
r;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-
apis.jar;%AXIS_LIB%\xercesImpl.jar

 Luego podemos hacer:

 javac –classpath %AXISCLASSPATH%
 java -cp %AXISCLASSPATH% ...

Ejecución del AdminClient

 Buscar en axis\samples\stock un ejemplo de un
fichero de explotación web de AXIS: deploy.wsdd.

 Registrar el servicio web mediante el comando:

java -cp %AXISCLASSPATH%

org.apache.axis.client.AdminClient -
lhttp://localhost:8080/axis/services/AdminServi
ce deploy.wsdd

 Para probar el servicio web acceder a:

java -cp .;%AXISCLASSPATH% samples.stock.GetQuote

-
lhttp://localhost:8080/axis/servlet/AxisServlet
-uuser1 -wpass1 XXX

Cómo Añadir AXIS a tu
Aplicación Web
 Los pasos a seguir son:

1. Añadir axis.jar, wsdl.jar, saaj.jar,

jaxrpc.jar y otras bibliotecas dependientes a tu
fichero WAR

2. Copiar todas las declaraciones del servlet de Axis y

sus mapeos de axis/WEB-INF/web.xml y
añadirlos a tu propio web.xml

3. Construir y desplegar la aplicación web
4. Ejecutar el AdminClient de AXIS contra tu propia
aplicación web, en vez de contra AXIS, cambiando
la url con la que invocas a AXIS

Consumiendo un Servicio Web

 Vamos a desarrollar una pequeña aplicación cliente que

consume el servicio web más sencillo que podemos
imaginar, implementado en Echo.jws, que copiaremos
a %TOMCAT_HOME%\webapps\AXIS\:
public class Echo {

public String echoString(String msg)
{

return msg;

}

}

Consumiendo un Servicio Web

 A continuación, vamos a definir un cliente

que me permita consumir este servicio
web desde línea de comando

 Desde un navegador podríamos invocar a

este servicio mediante la URL:
http://localhost:8080/axis/Echo.jws?method=ec

hoString&msg=hola

Consumiendo un Servicio Web

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
public class EchoClient
{

public static void main(String [] args) {

try {

String endpoint = "http://localhost:8080/axis/Echo.jws";
service = new Service();
Service service
Service
= new Service();
Service
Service
service
service
= new Service();
= new Service();
= (Call) service.createCall
= (Call)
Call call
Call
call
service.createCall();();();();
service.createCall
= (Call)
= (Call)
callcall
Call
Call
service.createCall

java.net.URL(endpoint) );
call.setTargetEndpointAddress
( new java.net.URL(endpoint
call.setTargetEndpointAddress( new
) );
java.net.URL(endpoint
( new
call.setTargetEndpointAddress
call.setTargetEndpointAddress
( new
java.net.URL(endpoint
) );) );
echoString") );
/", "echoString
call.setOperationName(new QName("http://soapinterop.org
call.setOperationName(new
QName("http://soapinterop.org/", "
") );
echoString
/", "
QName("http://soapinterop.org
call.setOperationName(new
call.setOperationName(new
/", "
QName("http://soapinterop.org
echoString
") );
") );

String ret = (String) call.invoke
call.invoke( new Object[] { "Hello!" } );
call.invoke
call.invoke

System.out.println("Sent 'Hello!', got '" + ret + "'");

} catch (Exception e) {

System.err.println(e.
  • Links de descarga
http://lwp-l.com/pdf17632

Comentarios de: Seccion 5 - Servicios Web con AXIS (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad