PDF de programación - Sesión 2: Creación de servicios Web SOAP - Servicios Web

<<>>
Imágen de pdf Sesión 2: Creación de servicios Web SOAP - Servicios Web

Sesión 2: Creación de servicios Web SOAP - Servicios Webgráfica de visualizaciones

Publicado el 21 de Enero del 2019
540 visualizaciones desde el 21 de Enero del 2019
815,9 KB
42 paginas
Experto Universitario Java Enterprise

Servicios Web

Sesión 2: Creación de servicios Web SOAP



Experto Universitario Java Enterprise

Puntos a tratar
• Introducción
• Servicios web desde la vista del servidor
• Implementación del servicio JAX-WS
• Pasos para crear un WS con JAX-WS
• Implementación del servicio con jdk 1.6
• Implementación del servicio con Maven
• Modelo de despliegue de J2EE
• Implementación del servicio con Netbeans

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

2



Experto Universitario Java Enterprise
Introducción
• Los Servicios Web que creemos deberán ofrecer una

serie de operaciones que se invocarán mediante SOAP.
Un servicio, por lo tanto:
• Debe recibir y analizar el mensaje SOAP de petición
• Ejecutará la operación y obtendrá un resultado
• Deberá componer un mensaje SOAP de respuesta con este

resultado y devolverlo al cliente del servicio

• Si tuviésemos que implementar todo esto nosotros

• Desarrollar Servicios Web sería muy costoso
• Se podría fácilmente cometer errores, no respetar al 100%

los estándares y perder interoperabilidad

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

3



Experto Universitario Java Enterprise
Librerías y herramientas
• Para facilitarnos la tarea contamos con:

• Librerías (JAX-WS)

•Nos permitirá leer y componer mensajes SOAP de forma sencilla
•Estos mensajes respetarán el estándar

• Herramientas

•Generarán de forma automática el código para:

1. Leer e interpretar el mensaje SOAP de entrada
2. Invocar la operación correspondiente
3. Componer la respuesta con el resultado obtenido
4. Devolver la respuesta al cliente

• Sólo necesitamos implementar la lógica del servicio

• La infraestructura necesaria para poderlo invocar mediante SOAP se

creará automáticamente

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

4



Experto Universitario Java Enterprise

Capas del servicio

• Las capas Stub y Tie

• Se encargan de componer e interpretar los mensajes SOAP que se intercambian
• Utilizan la librería JAX-WS
• Se generan automáticamente

• El cliente y el servicio

• No necesitan utilizar JAX-WS, este trabajo lo hacen las capas anteriores
• Los escribimos nosotros
• Para ellos es transparente el método de invocación subyacente
• El servicio es un componente que implementa la lógica (clase Java)
• El cliente accede al servicio a través del stub, como si se tratase de un objeto Java local

que tiene los métodos que ofrece el servicio

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

5



Experto Universitario Java Enterprise
Vista del servidor de un servicio Web

Tipos de contenedores:

web (servlet JAX-WS)
ejb (stateless session EJB)

WSDL: proporciona
una descripción del WS

SEI: Interfaz que define los métodos implementados
por el Service Implementation Bean
Service Implementation Bean: Clase java que
proporciona la lógica del WS

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Cada Port tiene una dirección física
particular asociada. Un Port asocia
una dirección con la implementación
del servicio

Creación de servicios Web SOAP

6



Experto Universitario Java Enterprise
Implementación del servicio Web
• La implementación del servicio web (Service

Implementation Bean) puede variar dependiendo del
contenedor en el que despleguemos el componente
Port, pero en general es una clase java anotada con
javax.jws.WebService
• Modelo de servlets (el componente Port reside en un

contenedor Web)

• Modelo EJB (el componente Port reside en un contenedor

EJB)

• El componente Port asocia una dirección de puerto con
Implementación del servicio

la implementación del servicio

componente

Port

<service name="HelloService">
<port name="HelloPort" binding="tns:HelloPortBinding">
<soap:address location="http://localhost:8080/HolaServer/Hola"/>
</port>
</service>

Dirección de puerto

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

7



Experto Universitario Java Enterprise

El modelo de programación JAX-WS
• Podemos elegir dos puntos de partida:

• Una clase Java que implementa el servicio Web

• Tendremos la seguridad de que la clase que implementa el

servicio tiene los tipos de datos adecuados

• Tenemos menos control sobre el esquema XML generado

• Un fichero WSDL

• Tenemos un control total sobre el esquema que se está

usando

• Tenemos menos control sobre el endpoint del servicio

generado y de las clases que utiliza

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

8



Experto Universitario Java Enterprise

Pasos para crear un WS con JAX-WS
• El punto de partida para desarrolar un WS es una clase Java

anotada con javax.jws.WebService.

• Dicha anotación define la clase como un endpoint del servicio

web

• Un SEI (Service Endpoint Interface) es una interfaz Java que
declara los métodos que el cliente puede invocar del servicio.
No es necesario declarar dicha interfaz de forma explícita.

• Los pasos básicos para crear un WS JAX-WS (o endpoint JAX-

WS) son:
1.Codificar la clase que implementa el servicio
2.Compilar la clase que implementa el servicio
3.Empaquetar los ficheros en un war
4.Desplegar el war. Los artefactos del WS necesarios para

comunicarse con los clientes serán generados por Glassfish
durante el desplegue

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

9



Experto Universitario Java Enterprise

Anotaciones JAX-WS
• La clase que implementa el servicio debe hacer uso de las

anotaciones de JAX-WS para servicios web

• Anotaciones que pueden utilizarse:

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

10



Experto Universitario Java Enterprise

Anotaciones JAX-WS

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

11



Experto Universitario Java Enterprise

Anotaciones JAX-WS

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

12



Experto Universitario Java Enterprise

Tipos de datos compatibles
• Los tipos de datos que podemos utilizar como tipo de los
parámetros y valor de retorno de los métodos del servicio
serán los tipos soportados por JAXB.

• Tipos de datos básicos y wrappers de estos tipos
java.lang.Boolean
java.lang.Byte
java.lang.Double
java.lang.Float
java.lang.Integer
java.lang.Long
java.lang.Short
java.lang.Character

boolean
byte
double
float
int
long
short
char

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

13



Experto Universitario Java Enterprise

Otros tipos de datos y estructuras

• Otros tipos de datos
java.lang.String
java.math.BigDecimal
java.math.BigInteger
• Colecciones y genéricos

java.util.Calendar
java.util.Date
java.awt.Image

Listas: List

ArrayList
LinkedList
Stack
Vector

Mapas: Map

HashMap
Hashtable
Properties
TreeMap

Conjuntos: Set

HashSet
TreeSet

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

14

Experto Universitario Java Enterprise


Requisitos para las clases que implementan el endpoint
• Podremos utilizar objetos de clases propias, siempre

que estas clases cumplan
• Deben tener un constructor void público
• No deben implementar javax.rmi.Remote
• Todos sus campos deben

•Ser tipos de datos soportados por JAXB
•Los campos públicos no deben ser ni final ni transient
•Los campos no públicos deben tener sus correspondientes

métodos get/set.

• Si no cumplen esto deberemos construir serializadores
• También podemos utilizar arrays y colecciones de

cualquiera de los tipos de datos anteriores

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

15



Experto Universitario Java Enterprise
Ejemplo de endpoint JAX-WS
package es.ua.jtech.servcweb.conversion;

import javax.jws.WebService;
@WebService
public class ConversionSW {

public ConversionSW() { }

public int euro2ptas(double euro) {
return (int) (euro * 166.386);
}

public double ptas2euro(int ptas) {
return ((double) ptas) / 166.386;
}
}

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

16



Experto Universitario Java Enterprise
Ejemplos de anotaciones
package utils;
import javax.jws.*;
@WebService(name=“MiServicioPortType", serviceName=“MiServicio",
targetNamespace="http://jtech.ua.es")
public class MiServicio {
@Resource private WebServiceContext context;
@WebMethod(operationName="eurosAptas")
@WebResult(name="ResultadoPtas", targetNamespace="http://jtech.ua.es")

public int euro2ptas(@WebParam(name="CantidadEuros",
targetNamespace="http://jtech.ua.es")
double euro) { ... }
@Oneway()
@WebMethod()
public void publicarMensaje(String mensaje) { ... }
}

Servicios Web

© 2012-2013 Depto. Ciencia de la Computación e IA

Creación de servicios Web SOAP

17



Experto Universitario Java Enterprise

Modelo EJB
• Podemos utilizar un Stateless Session Bean para

implementar el servicio. En este caso, el componente
Port residirá en un contenedor EJB

• Se utilizan las mismas anotaciones y normas y requisitos

que hemos mencionado

• Se utiliza la anotación @Stateless

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.ejb.Stateless;

@WebService
@Stateless()
public class Hello {
public void Hello() {}
@WebMethod
public String sayHello(String name) {
return “Hola, “+ message + name + ".";
}
}
Servicios Web

© 2012-2013 Depto. Ciencia de la Comp
  • Links de descarga
http://lwp-l.com/pdf14929

Comentarios de: Sesión 2: Creación de servicios Web SOAP - Servicios Web (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