Para obtener más información sobre He implementado un escenario de integración no trivial el uso de servicios web SOAP libremente disponibles para crear un servicio que puede devolver el tiempo en un aeropuerto.
Los servicios web son:
rutas
El recorrido completo es el siguiente:
a partir de ( "directa: getMaximumTemperaturAtAirport") .para ( "directa: getAirportInformationByAirportCode") .para ( "directa: fromAirportInformationToLocation") .para ( "directa: fromLocationToNDFD") .para ( "directa: fromNDFDToTempInCelcius"); 1 2 3 4 5 a partir de ( "directa: getMaximumTemperaturAtAirport"). a ( "directa: getAirportInformationByAirportCode"). a ( "directa: fromAirportInformationToLocation"). a ( "directa: fromLocationToNDFD"). a ( "directa: fromNDFDToTempInCelcius");
El flujo es síncrona y cada paso se lleva a cabo en una ruta separada para ser comprobable, por ejemplo puedo apagar pasos enteros de la ruta.
Un paso se puede dividir a su vez en las rutas aún más pequeños, por ejemplo, la separación de la llamada al servicio web y la gestión de errores:
a partir de ( "directa: getAirportInformationByAirportCode") .para ( "directa: invokeGetAirportInformationByAirportCode") .choice () .cuando (). XPath ( "count (/ NewDataSet / Tabla) = 0"). rollback ( "No se encontró Aeropuerto") .otherwise (); 1 2 3 4 5 a partir de ( "directa: getAirportInformationByAirportCode"). a ( "directa: invokeGetAirportInformationByAirportCode"). elección (). cuando ( ) . XPath ( "count (/ NewDataSet / Tabla) = 0"). rollback ( "No se encontró Aeropuerto"). de lo contrario ();
Llamar a un servicio web SOAP