4/9 Curso JEE5, Soa, Web Services, ESB y XML

  • 2,130 views
Uploaded on

Curso JEE5, Soa, Web Services, ESB y XML

Curso JEE5, Soa, Web Services, ESB y XML

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,130
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
107
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. INTRODUCCIÓN A LOS WEBSERVICES » Prácticas
  • 2. Prácticas• Contenido − ¿Qué es Axis?. Axis Services Vs JEE5 Services • Creación de un web service calculadora con Axis (modo JWS) • Creación de un web service calculadora mediante herramientas JEE5 − Más sobre axis: Implementación de un servicio mediante un WSDD
  • 3. Prácticas• AXIS − Apache Axis es una implementación de SOAP − Con axis, es muy sencillo crear y usar un Web Service. Hasta que apareció JEE5, era una opción bastante buena para muchas organizaciones para construir sus Web Services. − La versión que usaremos es la más reciente, la 1.4 * • NO ES CIERTO: * la más reciente, es AXIS2; pero el desarrollo no es aún lo suficientemente maduro, y además se trata de una implementación de WS distinta.• AXIS Web Services VS JEE5 Web Services − Axis es un “añadido” innecesario para construir Web Services si nuestra plataforma es JEE5 − Sin embargo es muy útil conocerlo, ya que podemos implantarlo fácilmente en nuestros entornos J2EE (por ejemplo, con Tomcat). − Los Web Services en JEE5 se construyen con JAX-WS. En AXIS se construyen con JAX-RPC.
  • 4. Prácticas• Preparando el entorno (I) − Instalación del JRE − Instalación SDK+App. Server − Instalación de netbeans − Crear directorio c:temp y c:cursosoa − Cambiar variable entorno TMP a %SystemRoot%TEMP o al valor c:temp − Cambiar el valor de la variable de usuario TMP a c:temp • Sirve para evitar un bug de Application Server y glassfish − Copiar el script setenv.bat a c:windows − Añadir al path estos directorios: • App-server-install-dirbin • App-server-install-dirlibantbin
  • 5. Prácticas• Preparando el entorno (II) − Comprobar si tenemos instalado notepad2. Notepad2 es un editor sencillo con reconocimiento de sintaxis. − Comprobar si tenemos instalado console. Console es una ventana de comandos con un buffer mayor que el cmd de windows y con unas fuentes más atractivas. • Una de las mejores características que tiene es la de poder marcar texto mediante el botón de shift+click_izquierdo. El menú copy/paste es ahora contextual. • Tambien ocurre que si tenemos texto en el portapapeles, podemos pegarlo con click_derecho sobre la ventana. • Eliminaremos la transparencia comentando la línea transparency del archivo c:windowsconsole.xml (<!– transparency…. -->).
  • 6. Prácticas• Preparando el entorno (III) − Descargarmos de la máquina jcrubio.cica.es el archivo: • OPCIONAL-axis-bin-1_4.zip − Lo copiamos a c:temp y descomprimimos. − Entramos a la carpeta axis-1_4webappsaxisWEB-INF. − Editamos con notepad el archivo web.xml • Comprobamos que los saltos de carro no son correctamente interpretados. − Editamos con notepad2 web.xml − Eliminamos el comentario a la línea que nos permite habilitar el Admin Servlet. Salvamos − Vamos a axis-1_4webappsaxis − Ejecutamos jar –cvf axis.war *
  • 7. Prácticas• Preparando el entorno (IV) − Ejecutamos asadmin deploy axis.war − Si no tenenos arrancado el servidor, fallará. − Comprobaremos los domains instalados y en ejecución con el comando: • Asadmin list-domains − Arrancar/Detener el servicio • Asadmin start-domain domain1 (como sólo un dominio, es opcional) • Asadmin stop-domain domain1 − Arrancamos el servicio con el comando start-domain. − Volvemos a intentar asadmin deploy axis.war . • Usuario admin: admin • Password: curso.curso
  • 8. Prácticas• Preparando el entorno (V) − Comprobamos que se ha desplegado la aplicación con un navegador http://localhost:8080/axis − Ahora iniciamos la consola de administración (Programas, Sun Microsystems, Admin Console) − Nos logamos con admin/curso.curso − EN el panel de la izquierda, en Applications, pinchamos en web applications, y en el panel de la derecha, seleccionamos axis y pulsamos undeploy. − Logout − Comprobamos con el navegador que la aplicación ya no es accesible. − Con el servidor iniciado, abrimos un console y tomamos axis.war y lo copiamos al directorio: • App-server-install-dirdomainsdomain1autodeploy
  • 9. Prácticas• Preparando el entorno (VI) − Comprobamos que axis también se ha desplegado. − El autodeploy es por tanto también una forma rápida y cómo de desplegar aplicaciones en nuestro Application Server. − Por último… − Copiamos el archivo 03-librerias externas en netb-ide7- modules-ext.zip a un directorio temporal y extraemos su contenido. − Copiamos todas las librerías que aparezcan a: • Netbeans-install-dirSunnetbeans-5.5betaide7modulesext• ¡TODO LISTO!
  • 10. PrácticasPreparando el entorno en un sistema LINUX− Copiamos el archivo siguiente en nuestra máquina guadalinex: • axis-bin-1_4.zip− Una vez en /home/guadalinex, lo copiamos a /tmp y descomprimimos con unzip.− Entramos a la carpeta cd axis-1_4/webapps/axis/WEB-INF− Editamos con gvim –y el archivo web.xml− Eliminamos el comentario para habilitar el Admin Servlet. Salvamos− Vamos a axis-1_4/webapps/axis− Ejecutamos: cp WEB-INF/classes/SOAP*.class .− Ejecutamos jar –cvf axis.war * OJO con el PUNTO
  • 11. Prácticas• Preparando el entorno en un sistema LINUX (II) − Ejecutamos asadmin deploy axis.war − Si no tenenos arrancado el servidor, fallará. − Comprobaremos los domains instalados y en ejecución con el comando: • asadmin list-domains − Arrancar/Detener el servicio • asadmin start-domain domain1 (como sólo un dominio, es opcional) • asadmin stop-domain domain1 − Arrancamos el servicio con el comando start-domain. − Volvemos a intentar asadmin deploy axis.war . • Usuario admin: admin • Password: curso.curso
  • 12. Prácticas• Preparando el entorno en un sistema LINUX(III) − Comprobamos que se ha desplegado la aplicación con un navegador http://localhost:8080/axis − Ahora iniciamos la consola de administración (abrimos un navegador y tecleamos la URL: http://localhost:4848) − Nos logamos con admin/curso.curso − En el panel de la izquierda, en Applications, pinchamos en web applications, y en el panel de la derecha, comprobamos que se encuentra la aplicación axis. − Logout − Si con el servidor iniciado, hubiésemos tomado el archivo axis.war y lo hubiésemos copiamos al directorio: • App-server-install-dir/domains/domain1/autodeploy • También se habría desplegado y aparecería en la consola de administración.
  • 13. Prácticas• Preparando el entorno en un sistema LINUX(IV) − El autodeploy es por tanto también una forma rápida y cómo de desplegar aplicaciones en nuestro Application Server. − Copiamos el archivo lib-ext-netb-ide7-modules-ext.zip a nuestra máquina guadalinex, y lo copiamos desde /home/guadalinex a /tmp. Ahí, extraemos su contenido con unzip. − Copiamos todas las librerías CON sudo que aparezcan a: • /opt/netbean-5.5/ide7/modules/ext
  • 14. Creación de un web service calculadora con Axis (modo JWS)
  • 15. Prácticas• Una vez instalado AXIS, ya podemos también construir Web Services mediante él.• Otro camino para arrancar el servidor es mediante el PROGRAMAS->Sun->App.->Start Default Server, y luego arrancamos la Admin Console del Application Server. Nos autenticamos con admin/curso.curso• El path de despliegue de la aplicación axis.war será: • AppServer-install-dirdomainsdomain1applicationsj2ee-modulesaxis• Será el directorio donde crearemos los JWS.
  • 16. Práctica• Debemos encontrarnos con lo siguiente:
  • 17. Prácticas• Ahora abrimos el archivo Calculadora.jws del directorio de prácticas. Debe contener algo como esto: /** * Servicio Web que realiza las operaciones Suma, * Resta, Multiplicación y División de dos números * @author JC */ public class Calculadora { public int suma(int x, int y) { return x + y; } public int resta(int x, int y) { return x-y; } public int multiplica(int x, int y) { return x * y; } public int divide(int x, int y) { return x / y; } }
  • 18. Prácticas• Cerramos el archivo, y con el server arrancado, y la aplicación axis desplegada, copiamos ese archivo al directorio: AppServer-install-dirdomainsdomain1applicationsj2ee-modulesaxis• Comprobamos ahora si ha generado un web service así: http://localhost:8080/axis/Calculadora.jws• Debemos obtener como respuesta esto:
  • 19. Prácticas• Una vez que sabemos que axis funciona correctamente, usaremos el Web Service Calculadora proporcionado por axis, construido sobre un archivo JWS. − Crearemos un proyecto de tipo “Web”. − Le daremos como nombre de proyecto 01CalculadoraJws − Una vez creado, en la zona de librerías, añadiremos los siguientes .jar de la carpeta ext: • axis.jar • jaxrpc.jar • commons-discovery-0.2.jar • commons-logging-1.0.4.jar • wsdl4j-1.5.1.jar
  • 20. Prácticas• De este modo:
  • 21. Prácticas• Ahora crearemos un servlet, que llamaremos resultados. El código fuente de este servlet, lo podemos extraer del directorio de prácticas: base-resultados.txt. Arreglamos los errores que marque Netbeans y salvamos.• El index.jsp lo podemos extraer del directorio de prácticas; básicamente contiene un formulario que permite introducir dos argumentos para el cálculo que queramos hacer con la calculadora.
  • 22. Prácticas• Probamos el código con un Run de nuestro proyecto:
  • 23. Creación de un web service calculadora mediante herramientas JEE5
  • 24. Prácticas• Ahora vamos a crear un proyecto del mismo web service que hemos implementado en AXIS, pero con la tecnología JEE5.• Para ello, arrancamos netbeans, y creamos un nuevo proyecto. En el asistente, elegimos la opción de un proyecto tipo Web.• Elegimos el nombre: 01CalculadoraJEE5
  • 25. Prácticas• Ahora creamos un web service mediante los menús, pulsando botón derecho en el proyecto, New File, Web Services, Web Service.• Lo llamaremos “calculadora”, y en el nombre del paquete le daremos calculadoraJEE5.• El asistente creará un archivo .java en la carpeta “Web Services”. Editamos el código de ejemplo que nos ha dejado Netbeans, y lo rellenamos con el archivo base-Calculadora.txt. Arreglar lo que netbeans marque con flags de error.
  • 26. Prácticas• Este proyecto tiene un index.jsp cuyo código dejaremos así: <% String URLRedireccion = "/01CalculadoraJEE5/calculadoraService?WSDL"; response.sendRedirect(URLRedireccion); %>• Hacemos un Clean and Build y un RUN del proyecto.• El navegador se dirigirá hacia: • http://localhost:8080/01CalculadoraJEE5/calculadoraService?WSDL• Ahora que ya tenemos nuestro Web Service Calculadora, debemos crear un cliente para probar el funcionamiento.• Observamos que el web service JEE5 lleva el sufijo “Service”.
  • 27. Prácticas• Creamos un nuevo proyecto, de tipo Web, con el nombre 01CalculadoraJEE5Client .• El index.jsp del proyecto, lo dejamos idéntico al index.jsp del proyecto 01CalculadoraJws.• Creamos un Servlet llamado resultados, y en el nombre del paquete, establecemos calculadoraJEE5Client .• Luego, pinchamos en nuestro proyecto, pulsamos botón derecho del ratón, New File, y en el asistente, elegimos Web Services, y en el panel derecho, elegimos Web Service Client.
  • 28. Prácticas• En la ventana siguiente, podemos elegir entre buscar el Web Service entre uno de nuestros proyectos o bien a través de la opción WSDL URL.• Si elegimos Project, basta navegar hacia 01CalculadoraJEE5 y seleccionar nuestro web service. Si elegimos WSDL URL, debemos especificar esta URL: • http://localhost:8080/01CalculadoraJEE5/calculadoraService?WSDL• Como nombre de paquete, elegimos calculadorajee5client• Una vez que ya tenemos el web service referenciado en nuestro proyecto, podemos usar una característica de Netbeans de escritura automática de código.
  • 29. Práctica• Seleccionamos nuestro proyecto y creamos un nuevo Servlet, y lo llamaremos “resultados”; también en el paquete calculadorajee5client.• En la ventana de código, tenemos que irnos al método processRequest . En una línea vacía de la ventana de Editor, dentro de este método, pulsamos botón derecho del ratón y elegimos Web Service Client Resources, y dentro de este menú, Call Web Service Operation.• Seleccionamos el Web Service que tenemos referenciado y elegimos la operación suma.• Las sentencias para capturar los parámetros del formulario que usará el Web Service en nuestras operaciones son: Integer arg0 = Integer.parseInt(request.getParameter("arg0")); Integer arg1 = Integer.parseInt(request.getParameter("arg1"));
  • 30. Práctica• Si dejamos el código tal como lo presenta el asistente, podemos obtener al final este aspecto en nuestro proyecto, una vez desplegado y ejecutándose:
  • 31. Más sobre axis: Implementación de un servicio mediante un WSDD
  • 32. Prácticas• Lo primero que tenemos que hacer es asegurarnos de que tenemos disponible el archivo setenv.bat en una ubicación dentro del PATH.• Luego abrimos un “console”, y nos dirigimos hacia: AppServer-Install-dirdomainsdomain1applicationsj2ee-modulesaxis• En este path, ejecutamos: copy Calculadora.jws WEB-INFclassesCalculadora.java• Acto seguido, ejecutamos cd WEB-INFclasses• Y por último “javac Calculadora.java”
  • 33. Prácticas• El fichero batch “setenv” crea unas variables de entorno para que podamos usar el AdminService de axis, que sirve para dar de alta Web Services compilados y que aparecen en la lista inicial list junto con sus métodos.• Para poder usar el AdminService, es necesario crear en este mismo directorio un fichero Calculadora.wsdd• El fichero Calculadora.wsdd puede copiarse del directorio de prácticas.
  • 34. Prácticas• Calculadora.wsdd: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!--Definimos el servicio Web a activar: Nombre y tipo de Servicio Web. RPC: Llamadas a procedimientos remotos con ejecucion sincrona --> <service name="CalculadoraWS" provider="java:RPC"> <!-- Nombre de la clase que implementa los metodos expuestos --> <parameter name="className" value="Calculadora"/> <!-- Expone todos los metodos como visibles desde el exterior --> <parameter name="allowedMethods" value="*"/> </service> </deployment>
  • 35. WEB SERVICES• También creamos un archivo que se llame “undeploy- calculadora-ws.wsdd”. Servirá si tenemos que dar de baja el web service:<undeployment xmlns="http://xml.apache.org/axis/wsdd/"> <service name="CalculadoraWS"/></undeployment>
  • 36. Prácticas• Es muy importante que en fichero wsdd no exista ningún carácter acentuado.• Si existe algún carácter acentuado incluso en la zona de comentarios, el AdminService generará un error. Ahora, para usar el AdminService: − Iniciamos el servidor donde esté axis − setenv − java org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService Calculadora.wsdd
  • 37. Prácticas• Captura de pantalla de la ejecución:
  • 38. Prácticas• Si todo ha ido bien, podremos ver algo como esto:
  • 39. Prácticas• Llegados a este punto, el fichero Calculadora.java podría eliminarse de ese directorio, si quisiéramos.• Es importante destacar que AdminService ha añadido la terminación WS al web service, porque así lo hemos especificado en el WSDD. Podríamos haber añadido el sufijo “Service”, como en los WS de JEE5. Ahora para acceder al wsdl la URL es: − http://localhost:8080/axis/services/CalculadoraWS?wsdl• Los web services JEE5 tienen una URL terminada en service − http://localhost:8080/01CalculadoraJEE5/calculadoraService?WSDL
  • 40. Prácticas• ¿Podríamos haber creado el WS sin tener el servidor de aplicaciones levantado, o el admin servlet habilitado?• Sí; de este modo: − setenv − java org.apache.axis.transport.http.SimpleAxisServer -p 8080 − Java org.apache.axis.client.AdminClient -p 8080 Calculadora.wsdd .. .. .. .. .. .. .. .. .. Processing file Calculadora.wsdd <Admin>Done processing</Admin>• Y ya tendríamos el Web Service Calculadora Disponible.
  • 41. Prácticas• Para detener el SimpleAxisServer, ejecutamos: − java org.apache.axis.client.AdminClient -p 8080 quit − <Admin> quitting.</Admin>• Obtendré del sistema lo siguiente: − Administration service requested to quit, quitting. − SimpleAxisServer quitting. − SimpleAxisServer quitting.
  • 42. EJERCICIO: Utilizar WSDL2Java para crear un clientes standalone
  • 43. PRÁCTICAS• Abrimos un “console”• Creamos una carpeta en el temporal: − Mkdir c:tempcarpeta − Cd c:tempcarpeta• Levantamos el servidor• Por últimos, una vez el servidor arriba, ejecutamos lo siguiente: − Setenv − wget http://localhost:8080/axis/services/CalculadoraWS?wsdl -O CalculadoraWS.wsdl• NOTA: disponemos de wget gracias a unxutils.
  • 44. Prácticas• Ahora ejecutamos: wget http://localhost:8080/axis/services/CalculadoraWS?wsdl -O CalculadoraWS.wsdl• Eso nos descargará el archivo CalculadoraWS.wsdl• Con él, usaremos una herramienta que creará los stubs o plantillas java para usar el web service.• Usándolas, nos quedará un código mucho más legible.
  • 45. Prácticas• Generamos la implementación de los stubs del Web Service, ejecutando: java org.apache.axis.wsdl.WSDL2Java CalculadoraWS.wsdl• Comprobamos que debe existir ahora esta estructura: ls ./localhost/axis/services/CalculadoraWS/Calculadora*./localhost/axis/services/CalculadoraWS/Calculadora.java./localhost/axis/services/CalculadoraWS/CalculadoraService.java./localhost/axis/services/CalculadoraWS/CalculadoraServiceLocator.java./localhost/axis/services/CalculadoraWS/CalculadoraWSSoapBindingStub.java• Ya tenemos lo necesario para usarlo con un cliente.
  • 46. Prácticas• Código del cliente más legible (“CalculadoraClient2.java”) que podemos crear (seguimos en el directorio c:tempcarpeta):import localhost.axis.services.CalculadoraWS.*;/*** Prueba el Web Service* @author JC*/public class CalculadoraClient2 { public static void main(String[] args) { localhost.axis.services.CalculadoraWS.CalculadoraServiceLocator locator; localhost.axis.services.CalculadoraWS.Calculadora calc; try { locator = new CalculadoraServiceLocator(); calc = locator.getCalculadoraWS(); System.out.println(calc.suma(6, 2)); System.out.println(calc.resta(3, 2)); System.out.println(calc.multiplica(9, 2)); System.out.println(calc.divide(100, 4)); } catch (Exception ex){ System.out.println(ex); } }}
  • 47. Prácticas• Compilamos el cliente con el • Si movemos el binario a comando: otra ubicación, fallará al javac CalculadoraClient2.java no encontrar la vía que• Lo ejecutamos con: empieza por localhost. java CalculadoraClient2 • Tendríamos que arrastrar• Obtenemos: la carpeta localhost junto 8 con el 1 CalculadoraClient2.class 18 25 • Vamos a programarlo sin usar los stubs que crea la utilidad WSDL2Java.
  • 48. Prácticas• Código de CalculadoraClient3.java/* import org.apache.axis.client.Call; import org.apache.axis.client.Service; => Esta aplicación es mucho import org.apache.axis.encoding.XMLType; import javax.xml.rpc.ParameterMode; más engorrosa de usar. /** * Prueba el Web Service 2 * @author JC */ public class CalculadoraClient3 { public static void main(String [] args) throws Exception { String endpoint = "http://localhost:8080/axis/services/CalculadoraWS"; Integer op1 = new Integer(100); Integer op2 = new Integer(200); Service service = new Service(); Call call = (Call) service.createCall(); // Establecemos la dirección en la que está activado el WebService call.setTargetEndpointAddress( new java.net.URL(endpoint) ); // Establecemos el nombre del método a invocar call.setOperationName( "multiplica" ); // Establecemos los parámetros que necesita el método // Observe que se deben especificar correctamente tanto el nómbre // como el tipo de datos.. // esta información se puede obtener viendo el WSDL del servicio Web call.addParameter( "in0", XMLType.XSD_INT, ParameterMode.IN ); call.addParameter( "in1", XMLType.XSD_INT, ParameterMode.IN ); call.setReturnType( XMLType.XSD_INT ); Integer result = (Integer) call.invoke( new Object [] { op1, op2 }); System.out.println("El resultado de la multiplicacion es: " + result); } }
  • 49. EJERCICIO: Crear un proyecto netbeanscon el código fuente de CalculadoraClient2
  • 50. Prácticas• Se pide: − Crear un proyecto 01CalculadoraClient2, que realice la misma función que CalculadoraClient2.• NOTAS − Tenemos que tener en cuenta que WSDL2Java genera un paquete con fuentes que necesitamos. − Este proyecto, necesita las siguientes librerías:
  • 51. EJERCICIO: Crear aplicaciones web que sean clientes de nuestros Web Services
  • 52. Prácticas• Como ejercicio, debemos crear un cliente de web service. CalculadoraWS. Tendremos de nuevo que añadir a mano las librerías externas como en el proyecto cliente JWS.• Creamos un proyecto llamado: 01CalculadoraWsdd, de tipo Web.• Creamos un servlet resultados, y en el nombre del paquete, le ponemos: calculadoraWsdd• Copiamos todo el trozo de código del servlet del proyecto 01CalculadoraJws, sin copiar la línea “package”.• Cambiamos la línea: miLlamada.setTargetEndpointAddress(new URL("http://localhost:8080/axis/Calculadora.jws"));• Por la línea: miLlamada.setTargetEndpointAddress(new URL("http://localhost:8080/axis/services/CalculadoraWS"));
  • 53. Prácticas• Lo ejecutamos, y debemos ver algo como esto:
  • 54. PRÁCTICAS REPASO
  • 55. Práctica repaso 1
  • 56. Práctica repaso 1− Construir un web service que tome dos argumentos; sean A y B.− El WS debe devolver el resultado de la siguiente operación: • A*B+2*(A+B) -1− Lo construiremos: • Mediante un JWS, con su cliente • Mediante una clase Java, con su WSDD y su cliente • Mediante JEE5, con un WS (@webservice) y su cliente.− PERO: nuestros clientes atacarán al web service del compañero de al lado. Los nombres de ficheros/proyectos y métodos: • El método que ofrecerá el cálculo A*B+2*(A+B) -1 se llamará calculo. • El index.jsp con el formulario que captura los dos argumentos será el habitual. • El JWS que implemente el WS se llamará: pfinal1.jws • El PROYECTO que actúa como cliente de pfinal.jws se llamará pfinal1JwsClient • El PROYECTO que actúa como cliente del servicio implementado con WSDD se llamará pfinal1WSDDClient. El WSDD llevará como service name pfinalWS1 • El PROYECTO JEE5 que implemente el Web Service se llamará pfinal1JEE5WService, el servicio se llamará pfinal1 • El PROYECTO cliente del Web Service se llamará pfinal1JEE5Client. − OJO CON LOS SUFIJOS EN EL DESPLIEGUE DE SERVICIOS.
  • 57. Práctica repaso 2
  • 58. Práctica repaso 2• Construiremos ahora dos web services: − Uno llamado pfinal2a, que realice la operación A*3+B*4 − Uno llamado pfinal2b, que realice la operación A+3+B-2 − Los construiremos de tipo AXIS/WSDD y JEE5 − Los WSDD’s llevarán como service name pfinal2aWS y pfinal2bWS − El PROYECTO JEE5 que implemente el Web Service se llamará pfinal2ajee5 y pfinal2bjee5 , los servicios se llamarán pfinal2a y pfinal2b• Y ADEMÁS: − Los clientes, harán lo siguiente: • Harán la llamada a TODOS los web services de todos los alumnos, y sumarán el resultado que produzcan cada uno de ellos. • Construiremos los clientes tanto para pfinal2a como para pfinal2b
  • 59. EJERCICIO: Aprendemos a usar laherramienta “Web Services Explorer” que viene incorporada en Eclipse WTP
  • 60. WEB SERVICES• En nuestra máquina linux, tenemos un proyecto funcionando con Web Services, pero nuestro IDE es capaz de hacer más cosas. Algunas de ellas muy útiles en cuanto a depuración: Web Services Explorer• Dentro de la carpeta src/WEB-INF, creamos una nueva carpeta que se llame “wsdl”. La vía completa será pues: src/WEB-INF/wsdl• Seleccionamos esa carpeta, y pulsamos “File->Import->File System”
  • 61. WEB SERVICESSeleccionamos el WSDL de nuestra calculadora:
  • 62. WEB SERVICES• Si todo ha ido correctamente, debemos tener en el Package Explorer una imagen como la de la figura.• Si hacemos doble click sobre el nombre del archivo que hemos importado, se abrirá una vista en diseño muy útil y clarificadora.
  • 63. WEB SERVICES
  • 64. WEB SERVICES• Para lo siguiente que vamos a hacer, necesitamos arrancar JBOSS (por ejemplo, desde Eclipse, mediante la configuración de debugging que hemos creado).• Ahora nos aseguramos de seleccionar CalculadoraWS.wsdl, y pulsamos: click-dcho->Web Services->Test with Web Services Explorer• Se abrirá una ventana de navegador con una aplicación web como la de la figura siguiente.
  • 65. WEB SERVICES• ¿Cómo puedo buscar en un repositorio UDDI?
  • 66. WEB SERVICES
  • 67. WEB SERVICES• ¿Y los repositorios UDDI para publicar o buscar?
  • 68. FIN