Altova MapForce 2024 Enterprise Edition

En este ejemplo aprenderá a consultar un servicio web de hora usando como entrada una constante. El servicio web propiamente dicho se implementó con ayuda de MapForce. Este paso se realizó de esta manera para mostrar un ejemplo, pero puede implementarlo con cualquier otra tecnología que admite un protocolo compatible.

 

La asignación de datos de este ejemplo forma parte del proyecto de asignación TimeService.mfp, disponible en la carpeta <Documentos>\Altova\MapForce2024\MapForceExamples\TimeService. El archivo de proyecto TimeService2.mfp de la carpeta <Documentos>\Altova\MapForce2024\MapForceExamples\TimeserviceWsdl2 es compatible con WSDL 2.0.

Para ver cómo se implementó el servicio web:

1.Seleccione el comando de menú Archivo | Abrir y seleccione el archivo TimeService.mfp de la carpeta <Documentos>\Altova\MapForce2024\MapForceExamples\Timeservice. Los archivos asociados con el proyecto se cargan en la ventana Proyecto.
mf_timeservice_01
2.Haga doble clic en la entrada getCityTime.mfd de la ventana Proyecto.
mf_timeservice_02

 

La asignación getCityTime.mfd acepta como entrada un nombre de ciudad y devuelve la hora actual en la salida. Si la ciudad no es Boston, se devuelve un error WSDL. La asignación toma los datos de entrada del archivo getCityTimeRequest.xml de la carpeta <Documentos>\Altova\MapForce2024\MapForceExamples\TimeService. Si hace doble clic en el componente getCityTimeSoapIn, verá que este archivo está configurado como origen de datos.

 

Para este ejemplo imaginaremos que este proyecto de servicio web ya está compilado e implementado en un servidor web real, al que llamaremos en los siguientes pasos del ejemplo. Hemos creado un servicio en línea de ejemplo en http://nanonull.com/TimeService/TimeService.asmx. Para ver más ejemplos de cómo crear este tipo de servicios web con MapForce, consulte Ejemplo: generar servicios web SOAP (Java).

Para llamar a la función de servicio web "getCityTime" desde una asignación de datos:

1.Seleccione el comando de menú Archivo | Nuevo, haga clic en el icono Asignación y confirme con el botón Aceptar.

2.Haga clic en el comando de menú Insertar | Función de servicio web... o en el botón ic-wsdl-func de la barra de herramientas.

3.Haga clic en Examinar para seleccionar el archivo de definición WSDL. Seleccione el archivo TimeService.wsdl del directorio TimeService y haga clic en el botón Abrir.

4.Cuando la aplicación solicite el extremo del servicio web, elija el extremo TimeServiceSoap.

mf_timeservice_03

5.Cuando la aplicación solicite una operación de servicio web, elija la operación getCityTime.

mf_timeservice_04

6.Deje las opciones predeterminadas de la configuración de la llamada WSDL como están y haga clic en Aceptar Para más información consulte Configurar llamadas a servicios web.

 

La función de servicio web getCityTime se inserta en forma de componente. Sin embargo, recuerde que realmente representa los ocho componentes que forman el archivo getCityTime.mfd que está guardado en el proyecto WSDL.

mf_timeservice_05

La sección izquierda del componente define la entrada de datos (SoapIn), mientras que la derecha define la salida de datos (SoapOut), que también puede incluir una sección de error si así se definió en el archivo .wsdl.

Para llamar al servicio web:

1.Inserte el componente que aportará los datos de entrada (p. ej. un componente de constante, texto o esquema). Para este ejemplo insertaremos un componente de constante con el valor de cadena Boston.

mf_timeservice_06

2.Conecte la constante al elemento n0:city.

3.Inserte un componente de salida simple (con el comando de menú Función | Insertar componente de salida).

4.Conecte el elemento n0:getCityTimeResult al componente de salida.

mf_timeservice_07

5.Haga clic con el botón derecho en el componente "getCityTime" de la asignación y seleccione Propiedades. Se abrirá el cuadro de diálogo Configuración de llamadas a servicios web. Introduzca en el campo URL http://nanonull.com/TimeService/TimeService.asmx (es un servicio web de ejemplo creado con MapForce; véase el apartado Implementar servicios web SOAP).

6.Haga clic en la pestaña Resultados. Como se ve en la imagen siguiente, en el panel Resultados aparecerá la hora actual en Boston.

mf_timeservice_08
Nota:el valor de entrada de la función de servicio web tiene prioridad sobre el origen de datos de la asignación original. Por ejemplo, la constante Boston tiene prioridad sobre el archivo de origen getCityTimeRequest.xml de la asignación de datos original.

Para asignar errores de servicio web:

1.Seleccione el comando de menú Insertar | Excepción o haga clic en el botón Excepción ic-except de la barra de herramientas.

2.Asigne el elemento Error: al elemento throw del componente de excepción.

3.Asigne el elemento n0:errorText al elemento error-text del componente de excepción.

mf_timeservice_09

© 2018-2024 Altova GmbH