Documentos de Académico
Documentos de Profesional
Documentos de Cultura
E
1. 2. 3.
l objetivo de esta prctica es invocar e implementar servicios web en Java desde el entorno Eclipse. La prctica est estructurada en tres partes segn se esquematiza en la figura 1 (pg. 92):
Invocacin de un servicio web disponible en Internet. Realizacin de un nuevo servicio web. Invocacin de un servicio web desde otro servicio web.
La primera parte consiste en descubrir la interfaz e invocar un servicio web ya existente en Internet (al que nos referiremos como servicio currency, de una manera genrica) que proporciona el coeficiente de cambio entre cualesquiera dos monedas. La segunda parte consiste en realizar un nuevo servicio web, denominado eurocalculadora, que calcula el cambio de una cantidad de dinero entre el euro y cualquier otra moneda. En una primera versin se aplicar un coeficiente de cambio fijo e igual a 1. Esto proporcionar resultados incorrectos, pero permitir realizar el desarrollo completo de un servicio y comprobar su funcionamiento. La tercera parte de la prctica consiste en modificar el servicio web desarrollado en la segunda parte para que obtenga el coeficiente de cambio de servicio web descubierto en la primera parte de la prctica. Se trata de convertir un servicio en un cliente de otro servicio.
DYA
91
FIGURA 1.
2. 3.
4.
5.
Importar el servicio: Import -> Web Services -> Web Service. Deber especificar que debe lanzarse el Web Services Explorer que deber examinar el registro UDDI de XMethods Registry. Seleccionar el servicio denominado Currency Convertor. Importar el fichero WSDL al workbench del proyecto prj-soap con el nombre CurrencyConvertor.wsdl, seleccionando la opcin que se indica en la figura 2 (pg. 93). Visualizar el fichero CurrencyConvertor.wsdl y observar la interfaz de este proyecto. La visualizacin grfica de esta interfaz se muestra en la figura 3 (pg. 93) y puede observarse que dispone de interfaz HTTP e interfaz SOAP. Probar la interfaz SOAP de este servicio utilizando el Web Services Explorer. Para ello deber seleccionar en el men contextual de este fichero Web Services -> Test with Web Services Explorer. Una vez seleccionada la interfaz SOAP aparecer un formulario como el de la figura 4 (pg. 94).
92
FIGURA 2.
FIGURA 3.
En la tercera parte de la prctica necesitar invocar este servicio desde un programa Java. Para ello, necesitar crear unos stubs a partir del fichero WSDL que permitan realizar la invocacin remota utilizando el protocolo SOAP. Para la creacin de estos stubs se requiere:
DYA
93
FIGURA 4.
1.
Seleccionar el fichero CurrencyConvertor.wsdl y en el men contextual utilizar la opcin Web Services -> Generate Client. Al final del proceso debe aparecer en el proyecto un paquete NET.webserviceX.www que debe contener los stubs generados.
2.
3.
4.
Aadir al paquete eurocal un fichero WSDL denominado eurocal.wsdl: New-> Other -> Web Services -> WSDL. Utilizar la interfaz grfica de este fichero para especificar una interfaz del servicio como la de la figura 5 (pg. 95). Generar los bindings o vnculos del servicio con las url donde se presta el servicio: Generate Binding Context. Generar el servicio web. Para ello se debe seleccionar el fichero con la interfaz WSDL (eurocal.wsdl) y en el men contextual utilizar la opcin Web Services -> Generate java bean skeleton. Al final del proceso debe aparecer en el proyecto un paquete org.example.www.eurocal
94
FIGURA 5.
que debe contener las plantillas del servicio y el esqueleto para su ejecucin como servidor remoto con el protocolo SOAP. Al final de la generacin del servicio se requerir arrancar el servidor Jakarta Tomcat para ejecutar el servicio. Si se decide no arrancarlo en este momento, tambin puede ejecutarse un servicio web sobre este servidor utilizando la opcin Run as -> Run on server. Aparece una ventana en la parte inferior del IDE denominada Server en la que se indica los servicios que est ejecutando el servidor. Se puede seleccionar alguno de estos servicios y borrarlo. La implementacin del servicio se realiza en el fichero EurocalSOAPImpl.java del paquete org.example.www.eurocal. Cada vez que se realiza una modificacin en este fichero y se salva, se regenera el servicio web y se rearranca el servidor Jakarta Tomcat para actualizar dicho servicio. Esta fase de la prctica terminar con la prueba de dicho servicio. Ello requiere:
5.
Seleccionar en el men contextual del fichero Web_Content/wsdl/eurocalSOAP.wsdl la opcin Web Services -> Test with Web Services Explorer.
DYA
95
Ficheros de apoyo
Este paso ya se realiz en la primera parte de esta prctica (seleccionar el fichero CurrencyConvertor.wsdl y en el men contextual utilizar la opcin Web Services -> Generate Client). El resultado es un paquete NET.webserviceX.www con los stubs generados. Los ficheros mas significativos son: CurrencyConvertorSoap.java: es el stub de la clase correspondiente al servicio. Currency.java: es una clase que enumera las diferentes monedas. CurrencyConvertorLocator.java: clase que sirve para obtener ubicar y obtener una referencia al stub del servicio. Solo resta realizar la invocacin remota desde el servicio eurocal. Para ello debe modificar el fichero EurocalSOAPImpl.java del paquete org.example.www.eurocal tal como se indica a continuacin.
import javax.xml.rpc.ServiceException;
import NET.webserviceX.www.Currency; import NET.webserviceX.www.CurrencyConvertorLocator; import NET.webserviceX.www.CurrencyConvertorSoap; public class EurocalSOAPImpl implements org.example.www.eurocal.Eurocal_PortType{
CurrencyConvertorLocator service; CurrencyConvertorSoap stub; public EurocalSOAPImpl() { service = new CurrencyConvertorLocator(); try { stub = service.getCurrencyConvertorSoap(); } catch (ServiceException e) { e.printStackTrace(); } }
96
Ficheros de apoyo
DYA
97
Ficheros de apoyo
98