Utilice el nodo HTTPInput para recibir peticiones de servicio web para que las procese un flujo de mensajes.
Este tema contiene las secciones siguientes:
Si utiliza el nodo HTTPInput con los nodos HTTPReply y HTTPRequest, el intermediario puede actuar como intermediario para los servicios web y las peticiones de servicios web se pueden transformar y direccionar del mismo modo que otros formatos de mensajes que están soportados por WebSphere Message Broker. Las peticiones de servicio web se pueden recibir en formato HTTP (1.0 o 1.1) estándar o en formato HTTP sobre SSL (HTTPS). Establezca la propiedad Utilizar HTTPS para decidir si va a manejar las peticiones HTTP o HTTPS.
Si incluye un nodo HTTPInput en un flujo de mensajes, deberá incluir un nodo HTTPReply en el mismo flujo o pasar el mensaje a otro flujo que incluya un nodo HTTPReply (por ejemplo, a través de un nodo MQOutput a un segundo flujo que se inicie con un nodo MQInput). En el último caso, la petición del cliente y la respuesta al cliente se coordinan mediante el identificador de petición almacenado en el entorno local.
Cuando el nodo HTTPInput recibe un mensaje de un cliente de servicio web, el nodo inicia los analizadores adecuados para interpretar las cabeceras y el cuerpo del mensaje, y para crear el árbol de mensajes que utiliza internamente el flujo de mensajes. El nodo crea un identificador exclusivo para el mensaje de entrada y lo almacena como una matriz binaria de 24 bytes en el árbol de entorno local, en LocalEnvironment.Destination.HTTP.RequestIdentifer. Este valor lo utiliza el nodo HTTPReply y no debe modificarse en absoluto.
Los mensajes HTTP nunca son persistentes y no tienen ningún orden asociado.
Los mensajes HTTP no son transaccionales. Sin embargo, si el flujo de mensajes interactúa con una base de datos u otro recurso externo como, por ejemplo, una cola de WebSphere MQ, estas interacciones se realizan en una transacción. El nodo HTTPInput proporciona confirmación o restitución, según cómo haya finalizado el flujo de mensajes y cómo esté configurado para el manejo de errores (por ejemplo, cómo estén conectados los terminales de anomalías). Si este nodo restituye el flujo de mensajes, se genera un mensaje de error que se devuelve al cliente. El formato del error se define mediante la propiedad Formato de error.
Si se produce una excepción en sentido descendente del flujo de mensajes y ésta no se emite sino que se devuelve a este nodo, el nodo crea una respuesta de error para el cliente. Este error se obtiene de la excepción y el formato del error se define mediante la propiedad Formato de error.
Si incluye un nodo de salida en un flujo de mensajes que empieza con un nodo HTTPInput, el nodo de salida puede ser cualquiera de los nodos de salida soportados (incluidos los nodos de salida definidos por el usuario). Puede crear un flujo de mensajes que reciba mensajes de clientes de servicio web y genere mensajes para clientes que utilicen todos los transportes soportados para conectar con el intermediario. Puede configurar el flujo de mensajes para que solicite al intermediario que proporcione cualquier conversión que sea necesaria.
Si crea un flujo de mensajes para utilizarlo como subflujo, no puede utilizar un nodo de entrada estándar; debe utilizar un nodo Input como el primer nodo, para crear un terminal de entrada para el subflujo.
Si el flujo de mensajes no recibe peticiones de servicio web, utilice cualquiera de los otros nodos de entrada.
El nodo HTTPInput se encuentra en el cajón HTTP de la paleta y está representado en el entorno de trabajo mediante el siguiente icono:
Puede utilizar el nodo HTTPInput en cualquier flujo de mensajes que acepta mensajes HTTP o HTTPS. El ejemplo más común es un flujo de mensajes que implementa un servicio web.
Para obtener más información sobre aplicaciones de servicio web, consulte Utilización de aplicaciones de servicios web.
El nodo HTTPInput da soporte a HTTP POST y HTTP GET. Para obtener más información sobre la habilitación de HTTP GET, consulte Nodo HTTPRequest.
/Joe /Joe/Mary /Joe/* /*este formato obtiene el mensaje si ningún otro nodo coincide con la petición. De modo que para la petición: http://localhost:777/Joe/Sally, busca Joe/*. Si la petición no coincide con ningún selector de URL, y usted no tiene un nodo de entrada con /* especificado, el nodo HTTPInput devuelve una respuesta al emisor. Por ejemplo:
<html> <head> <title>WebSphere MQ Integrator error report </title> </head> <body> <h1>HTTP Status 404 - Resource Not Found</h1> URI /soap does not map to any message flow in broker VCP1BRK <h3>WebSphere MQ Integrator 500</h3> </body> </html>
Puede utilizar un URL de /* para captar todas las peticiones que no coincidieron con los URL de los nodos HTTPInput, lo que le permite enviar un mensaje de respuesta y realizar las acciones que sean apropiadas.
El intermediario debe configurarse para utilizar un
puerto (el predeterminado es 7080). El escucha HTTP lo inicia el intermediario cuando se inicia un flujo de mensajes que incluya el soporte de nodos HTTP o servicios web.
Cuando llega una petición, el escucha la envía al nodo
HTTPInput mediante un mensaje WebSphere MQ.
El
escucha HTTP escucha en direcciones IPv6 (Internet Protocol Version 6)
e IPv4 (Internet Protocol Version 4) cuando están soportadas por el sistema
operativo. Para habilitar la escucha IPv6 en plataformas
Windows
y HPUX, establezca la variable de entorno _JAVA_OPTIONS en
-Djava.net.preferIPv4Stack=false.
Puede utilizar el mandato mqsichangetrace para que el escucha HTTP recopile información de rastreo. Para procesar las anotaciones, utilice el mandato mqsireadlog con calificador establecido en httplistener.
El nodo HTTPInput direcciona al terminal de salida (Out) todos los mensajes que recupera satisfactoriamente. Si la validación del mensaje no es satisfactoria, el mensaje se direcciona al terminal de anomalías; puede conectar nodos a este terminal para manejar esta condición. Si no ha conectado el terminal de anomalías, el mensaje se elimina, se excede el Tiempo máximo de espera del cliente y el escucha de TCP/IP devuelve un error al cliente. No hay ninguna otra situación en que el mensaje se direccione al terminal de anomalías.
Si este nodo capta este mensaje después de que se genere una excepción más adelante en el flujo de mensajes, el mensaje se direcciona al terminal de captación. Si no ha conectado el terminal de captación, el mensaje se elimina, se excede el Tiempo máximo de espera del cliente y el escucha de TCP/IP devuelve un error al cliente.
Cuando haya colocado una instancia del nodo HTTPInput en un flujo de mensajes, podrá configurarlo; consulte el apartado Configurar un nodo de flujo de mensajes. Las propiedades del nodo se visualizan en la vista Propiedades. Para visualizar las propiedades del nodo en el diálogo Propiedades, efectúe una doble pulsación en el nodo o pulse con el botón derecho del ratón sobre el nodo y pulse Propiedades.
Los terminales del nodo HTTPInput se describen en la tabla siguiente.
Terminal | Descripción |
---|---|
Failure (de anomalías) | El terminal de salida al que se direcciona el mensaje si se produce un error. |
Out (de salida) | El terminal de salida al que se direcciona el mensaje si se recupera satisfactoriamente. |
Catch (de captación) | El terminal de salida al que se direcciona un mensaje si se genera una excepción en sentido descendente y después este nodo la capta. |
Las tablas siguientes describen las propiedades de nodo. La columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido ningún valor predeterminado); la columna con la cabecera C indica si la propiedad es configurable (puede cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).
Las propiedades de descripción del nodo HTTPInput están descritas en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de nodo | No | No | El tipo de nodo, HTTPInput | El nombre del nodo. |
Descripción corta | No | No | Una descripción breve del nodo. | |
Descripción larga | No | No | Texto que describe la finalidad del nodo en el flujo de mensajes. |
Las propiedades básicas del nodo HTTPInput se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Sufijo de la vía de acceso del URL | Sí | Sí | Esta propiedad identifica la ubicación desde la que se recuperan peticiones de servicio web. No utilice el URL completo. Si el URL que desea es http://<nombre_host>[:<puerto>]/[<vía_acceso>], especifique /<vía_acceso> o /<fragmento_vía_acceso>/*, donde * es un comodín que puede utilizar para significar coincidir con cualquiera. | |
Utilizar HTTPS | No | Sí | No seleccionado | Esta propiedad identifica si el nodo debe aceptar el HTTP seguro. Si el nodo debe aceptar el HTTP seguro, marque el recuadro de selección. |
Las propiedades de análisis de mensajes de entrada del nodo HTTPInput se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Dominio de mensajes | No | No | Dominio que se utiliza para analizar el mensaje de entrada. Seleccione el nombre del analizador que utiliza de la lista:
|
|
Conjunto de mensajes | No | No | Nombre o identificador del conjunto de mensajes en
el que se define el mensaje de entrada. Todos los conjuntos de mensajes
disponibles están en la lista. Si utiliza el analizador MRM o IDOC, seleccione el Conjunto de mensajes que desea utilizar. Esta lista se llena con conjuntos de mensajes disponibles cuando se selecciona MRM o IDOC como dominio. Deje en blanco el campo Conjunto de mensajes para los analizadores XML, XMLNS, XMLNSC, JMS, MIME y BLOB. |
|
Tipo de mensaje | No | No | Nombre del mensaje de entrada. Si está utilizando el analizador MRM, seleccione el tipo de mensaje en la lista de Tipo de mensaje. Esta lista se llena con los mensajes definidos en el Conjunto de mensajes que se ha seleccionado. Deje en blanco Tipo de mensaje para los analizadores XML, XMLNS, XMLNSC, JMS, IDOC, MIME y BLOB. |
|
Formato del mensaje | No | No | Nombre del formato físico del mensaje de entrada. Si utiliza el analizador MRM o IDOC, seleccione el formato del mensaje en la lista de Formato del mensaje. Esta lista incluye todos los formatos físicos que se han definido para este Conjunto de mensajes. Deje en blanco Formato del mensaje para los analizadores XML, XMLNS, XMLNSC, JMS, MIME, y BLOB. |
En la tabla siguiente se describen las propiedades de las Opciones de análisis para el nodo HTTPInput.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Temporización del análisis | No | No | A petición | Esta propiedad controla cuándo se analiza un mensaje de entrada. Los valores válidos son A
petición, Inmediato
y Completo. De forma predeterminada, esta propiedad se establece en A petición, con lo cual la validación se retrasa hasta que se analice mediante el análisis parcial. Si cambia este valor por Inmediato, el análisis parcial se altera temporalmente y se analizan y validan todos los elementos de mensaje, excepto los tipos complejos con una composición de Elección o Mensaje que no se pueden resolver en ese momento y producen una anomalía de validación. Si cambia este valor por Completo, el análisis parcial se altera temporalmente y se analizan y validan todos los elementos del mensaje. |
Utilizar analizador compacto XMLNSC para dominio XMLNS | No | No | No seleccionado | Esta propiedad controla si el analizador compacto XMLNSC se utiliza para mensajes en el dominio XMLNS. Si se establece esta propiedad, los datos del mensaje aparecen bajo XMLNSC en nodos que estén conectados al terminal de salida cuando la cabecera MQRFH2 de entrada o el Dominio de mensajes de la propiedad de Análisis de mensaje de entrada sea XMLNS. |
Retener contenido mixto | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensajes cuando encuentra texto mixto en un mensaje de entrada. Si selecciona el recuadro, se crean elementos para el texto mixto. Si deselecciona el recuadro, el texto mixto se ignora y no se crea ningún elemento. |
Retener comentarios | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensajes cuando encuentra comentarios en un mensaje de entrada. Si selecciona el recuadro, se crean elementos para los comentarios. Si deselecciona el recuadro, los comentarios se ignoran y no se crea ningún elemento. |
Retener instrucciones de proceso | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensajes cuando encuentra instrucciones de proceso en un mensaje de entrada. Si selecciona el recuadro, se crean elementos para las instrucciones de proceso. Si deselecciona el recuadro, las instrucciones de proceso se ignoran y no se crea ningún elemento. |
Las propiedades de Manejo de errores del nodo HTTPInput se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Tiempo máximo de espera de cliente (seg) | Sí | No | 180 | El periodo de tiempo, en segundos, que el escucha de TCP/IP que ha recibido el mensaje de entrada del cliente de servicio web espera una respuesta del nodo HTTPReply en el flujo de mensajes. Si se recibe una respuesta dentro de este periodo de tiempo, el escucha propaga la respuesta al cliente. Si no se recibe una respuesta en este periodo de tiempo, el escucha envía un mensaje de error SOAP al cliente para indicar que se ha excedido el tiempo de espera. El rango válido es de cero (significa una espera indefinida) a (231)-1. |
Formato de error | No | Sí | SOAP 1.1 | El formato de los errores HTTP que se devuelven al cliente. Los valores válidos son SOAP 1.1, SOAP 1.2 y HTML. |
En la tabla siguiente se describen las propiedades de validación del nodo HTTPInput. Si un mensaje se propaga al terminal de anomalías del nodo, no se valida. Si desea ver información más detallada, consulte los apartados Validar mensajes y Propiedades de validación.
.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Validar | No | Sí | Ninguna | Esta propiedad controla si tiene lugar la validación. Los valores válidos son Ninguna, Contenido y valor y Contenido. |
Acción para anomalía | No | No | Excepción | Esta propiedad controla qué sucede si falla la validación. Sólo puede establecer esta propiedad si establece Validar en Contenido o Contenido y valor. Los valores válidos son Rastreo de usuario, Anotaciones de error locales, Excepción y Lista de excepciones. |
Incluir todas las limitaciones de valor | No | No | Seleccionado | Esta propiedad no se puede editar. Las comprobaciones de restricción de valor básicas se incluyen en la validación de Contenido y valor. |
Arreglo | No | No | Ninguna | Esta propiedad no se puede editar. |
Las propiedades Avanzadas del nodo
HTTPInput están descritas en la siguiente
tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Establecer lista de destinos | No | No | Seleccionado | Esta propiedad especifica si se debe añadir el nombre de enlace del método a la ruta de la lista de destinos de etiqueta. Si selecciona este recuadro, se añade el nombre de enlace de método para que pueda utilizar un nodo RouteToLabel en el flujo de mensajes después del nodo HTTPInput. |
Prefijo de etiqueta | No | No | Ninguno | El prefijo que se va a añadir al nombre de método cuando se direcciona a la etiqueta. Añada un prefijo de etiqueta para evitar un conflicto de los nodos de etiqueta correspondientes cuando se incluyen varios nodos de entrada de WebSphere Message Broker en el mismo flujo de mensajes. De forma predeterminada, no hay ningún prefijo de etiqueta, por lo que el nombre de método y el nombre de etiqueta son idénticos. |