tema vi. servicios web ii. jax-ws

23
Tema VI. Servicios Web II. JAX-WS Desarrollo de Aplicaciones para Internet Curso 12|13

Upload: independent

Post on 29-Nov-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

Tema VI. Servicios WebII. JAX-WS

Desarrollo de Aplicaciones para InternetCurso 12|13

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

Servicios Web en Java

● Soportados por el API JAX-WS de Java 6 SE● Versiones

– Versión 1 – JAX-RPC

– Versión 2 – JAX-WS (Actual)

● JAX-WS hace uso intensivo de JAXB● Está formada por

– Bibliotecas para el trabajo con servicios Web (definición de servicios, publicación, solicitud, etc.)

– Herramientas de línea de comandos para generar código

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

JAXB

● JAX Bindings– Conjunto de utilidades que permiten la conversión

de clases y objetos en XML Schemas y XMLs y viceversa

– Proporciona una serie de anotaciones para configurar la generación de XML

– También incluye las herramientas● xjc: Compilador que permite convertir un XML Schema

en clases Java● schemagen: Utilidad que permite generar un XML

Schema a partir de clases Java

Esquema JAXB

XMLSchema

DocumentoXML

ClaseClaseObjetos

ClaseClaseClases

compila a (xjc)

desaplana (unmarshal)

instancia devalida

aplana (marshal)

sigue

genera (schemagen)

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

Definición de Servicios

● La definición de servicios en JAX-WS se realiza mediante la anotación de clases e interfaces

● Java recomienda crear los servicios en dos partes– Service Endpoint Interface (SEI)

● Interfaz que declara los métodos que serán publicados

– Service Implementation Bean (SIB)● Clase que implementa la SEI

Definición de Servicios

● JAX-WS saca provecho de JAX-B para convertir beans de Java en XML– Los beans son clases con constructor vacío y

getters y setters

– Genera los elementos asociados a los beans para poder construir el WSDL

– Es responsable de aplanar/desaplanar objetos para poder enviarlos como parte de los mensajes SOAP

– Tiene ciertas limitaciones (p.ej. no puede trabajar directamente con interfaces)

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii.Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

Anotaciones Principales

● javax.jws.WebService

– Indica que una clase o interfaz son un servicio Web

– Permite configurar varios parámetros del servicio Web (nombre, nombre del servicio, nombre del puerto, etc.)

● javax.jws.WebMethod

– Indica que un método es una operación del servicio Web

– Permite configurar varios parámetros de la operación (nombre de la operación, excluirlo explícitamente como operación y la acción de la operación)

Anotaciones Principales

● javax.jws.WebParam

– Permite configurar el mapeo de los parámetros de las operaciones

– No suele ser necesario su uso

● javax.jws.Oneway

– Indica que una operación no devuelve valores (no se genera un mensaje SOAP de respuesta)

● javax.jws.soap.SOAPBinding

– Permite configurar el modo en el que se hará el binding

– Es especialmente útil el atributo “style”, cuyo valor puede ser● SOAPBinding.Style.RPC● SOAPBinding.Style.DOCUMENT

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

Clases Principales

● javax.ws.Endpoint

– Representa un punto final asociado a un servicio

– Los Endpoint se crean mediante métodos estáticos de la propia clase

– Un Endpoint puede estar publicado o no publicado

– Soportan peticiones paralelas mediante el uso de un Executor (ver método setExecutor)

● javax.xml.namespace.QName

– Representa un nombre cualificado

– Permite hacer referencia a un servicio con los parámetros● 1º URI del servicio● 2º Nombre del servicio publicado

Clases Principales

● javax.xml.ws.Service

– Actúa de cliente de un servicio web

– Se crea mediante métodos estáticos que vinculan los Service con servicios Web remotos

– Dan acceso a los puertos remotos, devolviendo un stub del objeto de servicio remoto

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

Ejemplo Servicio Tiempo

● Este ejemplo es el visto en la primera parte del tema

● Lo repasaremos de nuevo para analizar las anotaciones y clases empleadas

Ejemplo Servicio Tiempo

Interfaz del Servicio (SEI)Publicación del Servicio

Implementación del Servicio (SIB)

*Ejemplo basado en el propuesto en el libro “Java Web Services Up and Running”

Cliente

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii.Ejemplo Servicio Calculadora

5.Referencias

Ejemplo Servicio Calculadora

● Puedes encontrar el código de este ejemplo en Faitic– CalculatorService.tar.gz: Contiene el

ejemplo básico con métodos sencillos

– CalculatorServiceFull.tar.gz: Contiene un ejemplo un poco más avanzado con tipos de datos más complejos. Incluye un ejemplo de trabajo con mapas

Índice

1.Introducción

2.JAXB

3.JAX-WS

i. Definición de Servicios

ii. Anotaciones Principales

iii.Clases Principales

4.Ejemplos

i. Ejemplo Servicio Tiempo

ii. Ejemplo Servicio Calculadora

5.Referencias

Referencias

● Java Web Services: Up and RunningKalin, M. – O'Reilly [2009]

● JAXB Tutorial: http://jaxb.java.net/tutorial/ [última visita 25/11/12]