Está en la página 1de 20

TECNOLOGA MVIL

J2ME - Servicios Web

Servicios web
Son programas con funcionalidad accesible
a travs de protocolo http que permiten la
ejecucin remota de mtodos y funciones
Los clientes envan solicitudes de ejecucin
de mtodos y funciones y sus argumentos
Los servidores responden enviando los
resultados solicitados

Servicios web, II
Java EE 6 incluye grandes servicios web
(basados en la especificacin JAX-WS) y
servicios web reposados (basados en la
especificacin JAX-RS)
Los servicios reposados optimizan el
ancho de banda y son ms sencillos de
desarrollar

Servicios web, III


Los grandes servicios web transmiten la
informacin a travs de un protocolo
universal basado en XML, llamado SOAP
Mediante servicios web, programas
escritos con tecnologas diferentes (Java
EE, .NET) pueden compartir informacin y
procedimientos de acceso a ella
estandarizados

Servicios web, IV
La utilizacin de un servicio web involucra:
Un programa servidor capaz de publicar a
travs de un registro referencias a objetos
servidores y a sus mtodos y de serializar y
desserializar objetos.
Un protocolo de publicacin y acceso a
mtodos y a objetos serializados.
Un programa cliente capaz de acceder a
referencias publicadas de objetos servidores,
de hacer llamadas a sus mtodos y de
serializar y desserializar otros objetos.

Ejercicio para clase [SW0]


Describir un servicio web con una clase
servidora que publica dos mtodos
Describir una aplicacin web que utiliza el
servicio anterior
Se deber entregar un documento de
Word con la descripcin del servicio al
nivel de abstraccin y detalle en que se
han definido los servicios web en las
transparencias anteriores

Grandes servicios web:


Requisitos
Las clases cuyas instancias son objetos
servidores se anotan mediante @WebService.
Los mtodos accesibles pblicamente se anotan
mediante @WebMethod.
Una herramienta auxiliar, wsgen, genera
artefactos necesarios para el despliegue del
servicio, incluyendo ficheros de clase que los
clientes pueden cargar a travs de la red.

Grandes servicios web:


Restricciones
Los @WebServices han de
constructor sin argumentos
Los @WebMethods tienen
pblicos
Los argumentos y los objetos
por @WebMethods tienen que
simples o Java Beans.

tener un
que

ser

devueltos
ser tipos

Implementacin de servicios web


desde NetBeans
ATENCIN: En los ejercicios se deben
implementar los servicios web en la forma
que se describe a continuacin.
Crear un proyecto de aplicacin web
(tambin se puede hacer con una aplicacin
Enterprise).
Crear el servicio web desde el proyecto, con
un paquete. Netbeans crea la clase
@WebService asociada, cuyo nombre es el
del servicio.

Implementacin de servicios
web desde NetBeans, II
Definir los Beans auxiliares y los
@WebMethods.
Al construir y desplegar la aplicacin,
Netbeans ejecuta wsgen y gestiona la
publicacin del servicio.
Se puede probar el servicio desde un
navegador seleccionando la opcin Test
sobre el mismo.

Ejemplo de servicio web


Una aplicacin que permite buscar
documentos que contienen una palabra y
devolverlos ordenados segn el nmero
de veces que aparece la palabra se puede
implementar como sigue:
Clase servidora: Buscador
Mtodo accesible: List<Doc> busca(palabra)

Bean auxiliar: Doc

Ejemplo de servicio web, II


@WebService
public class Buscador {
@WebMethod
List<Doc> busca(String palabra)
class Doc {
int apariciones(String palabra)
// Mtodos set y get

Esquema del funcionamiento de


servicios web
registro

objRef

objRef.f(arg)

Cliente

Interfaz comn

obj

obj.f(arg)

Servidor

Implementacin desde NetBeans


de aplicaciones Java clientes
Crear un proyecto de aplicacin Java
Crear el cliente del servicio web desde el
proyecto. Netbeans pide la URL de
acceso y el paquete
La URL de acceso es la de la aplicacin web
del servidor seguida del nombre del servicio
terminado con Service?wsdl
El paquete es el del servicio seguido de
.client

Implementacin desde NetBeans


de aplicaciones Java clientes, II
Netbeans accede a la URL e importa en el
paquete del cliente las clases necesarias para el
cliente:
Referencias al servicio: La clase tiene el nombre del
servicio seguido de Service (BuscadorService en el
ejemplo)
Mtodo de obtencin de referencias a objetos servidores:
getXXXPort(), donde XXX es el nombre del servicio
(getBuscadorPort en el ejemplo)

Referencias a objetos servidores: La clase tiene el


nombre del servicio (Buscador en el ejemplo) y tiene
los mtodos publicados

Implementacin desde NetBeans


de aplicaciones Java clientes, III
Incluir en el proyecto del cliente las clases
de los Java Beans requeridos
(argumentos y objetos devueltos por los
mtodos disponibles; Doc en el ejemplo)
ATENCIN: En los ejercicios se deben
implementar los clientes de servicios web
en la forma descrita en las ltimas
transparencias.

Programacin del cliente


Esquema de funcionamiento del cliente:
Instanciar una referencia al servicio
Obtener una referencia a un objeto servidor
Ejecutar mtodos

Ejemplo de cliente
public class BuscadorClient {
public static void main(String[] args) {
ws.client.BuscadorService serv =
new ws.client.BuscadorService();
ws.client.Buscador busc =
serv.getBuscadorPort();
List<Doc> rec = busc.busca(servidor);

Depuracin
Wsmonitor (wsmonitor.dev.java.net)
permite interceptar las llamadas de SOAP.
Para la depuracin el cliente debe hacer
las peticiones en el puerto 4040, donde
escucha Wsmonitor; ste las replica al
puerto 8080
El monitor muestra las solicitudes y
respuestas (formato XML)

Ejercicio para clase


Implementar una de las aplicaciones Java
propuestas por otro compaero que
accede a un servicio web, y comprobar el
funcionamiento correcto de la aplicacin y
del servicio desde un Midlet

También podría gustarte