Use o nó HTTPInput para receber uma mensagem HTTP de um cliente HTTP para processamento por um fluxo de mensagens.
Este tópico contém as seguintes seções:
Se você usar o nó HTTPInput com os nós HTTPReply e HTTPRequest, o broker poderá agir como um broker para serviços da Web e os pedidos de serviço da Web poderão ser transformados e roteados da mesma maneira que outros formatos de mensagem que são suportados pelo WebSphere Message Broker.
Os pedidos de serviço da Web podem ser recebidos tanto no formato HTTP (1.0 ou 1.1) padrão quando no formato HTTP sobre SSL (HTTPS). Para obter mais informações sobre os serviços da Web, consulte Processando mensagens do serviço da Web.
O nó HTTPInput suporta HTTP POST e HTTP GET. Para obter mais informações sobre como ativar o HTTP GET, consulte Nó HTTPRequest.
Se seus fluxos de mensagens estiverem processando mensagens SOAP, utilize os nós SOAP na preferência para o nó HTTPInput para tirar vantagem dos recursos aprimorados, incluindo WS-Addressing e WS-Security.
As mensagens HTTP são sempre não persistentes e não possuem ordem associada.
As mensagens HTTP são não transacionais. Entretanto, se o fluxo de mensagens interagir com um banco de dados ou outro recurso externo, como uma fila do WebSphere MQ, essas interações serão executadas em uma transação. O nó HTTPInput fornece confirmação ou recuperação, dependendo de como o fluxo de mensagens foi encerrado e como ele está configurado para manipulação de erros (como os terminais de falha estão conectados, por exemplo). Se for efetuado rollback do fluxo de mensagens por este nó, uma mensagem de falha será gerada e retornada ao cliente. O formato da falha é definido pela propriedade Formato da falha.
Se uma exceção ocorrer no recebimento de dados neste fluxo de mensagens, e ela não for capturada mas for retornada para este nó, o nó construirá uma resposta de erro ao cliente. Este erro é derivado da exceção e o formato do erro é definido pela propriedade Formato de Falha.
Se você incluir um nó de saída em um fluxo de mensagens que começa com um nó HTTPInput, o nó de saída poderá ser qualquer um dos nós de saída suportados (incluindo nós de saída definidos pelo usuário). É possível criar um fluxo de mensagens que recebe mensagens da clientes de serviço da web e gera mensagens para clientes que usam todos os transportes suportados para conectar-se ao broker. Você pode configurar o fluxo de mensagens para solicitar que o broker forneça qualquer conversão necessária.
Se você criar um fluxo de mensagens para utilizar como um subfluxo, não poderá utilizar um nó de entrada padrão; é necessário utilizar um nó Entrada como o primeiro nó para criar um terminal In para o subfluxo.
O nó HTTPInput está contido na caixa da paleta HTTP e representado no WebSphere Message Broker Toolkit pelo seguinte ícone:
Se você incluir um nó HTTPInput em um fluxo de mensagens, deverá incluir um nó HTTPReply no mesmo fluxo ou transmitir a mensagem para outro fluxo que inclua um nó HTTPReply (por exemplo, por meio de um nó MQOutput para um segundo fluxo que começa com um nó MQInput). No último caso, o pedido do cliente e a resposta para ele são coordenados pelo identificador de pedido que é armazenado no ambiente local pelo nó HTTPInput.
Não é possível usar um nó SOAPReply para responder a um pedido de serviço da Web que é recebido por um nó HTTPInput; o broker gera uma exceção quando há uma tentativa de resposta.
Quando o nó HTTPInput recebe uma mensagem de um cliente de serviço da Web, ele inicia os analisadores apropriados para interpretar os cabeçalhos e o corpo da mensagem, e para criar a árvore de mensagens que é usada internamente pelo fluxo de mensagens. O nó cria um identificador exclusivo para a mensagem recebida e o armazena como uma matriz binária de 24 bytes na árvore de ambiente local em LocalEnvironment.Destination.HTTP.RequestIdentifier. Esse valor é usado pelo nó HTTPReply, portanto, não será necessário modificá-lo.
Por padrão, as mensagens HTTP e HTTPS são tratadas pelo listener do broker, que é iniciado quando um fluxo de mensagens que inclui um nó HTTP é iniciado. Todas as mensagens HTTP de entrada e de saída são roteadas através deste listener, para todos os nós HTTP que são implementados em todos os fluxos de mensagens em todos os grupos de execução no broker.
É possível configurar um grupo de execução para usar seu listener integrado para servir os nós HTTP em todos os fluxos de mensagens que são implementados nesse grupo de execução. O listener integrado se comunica diretamente com o cliente e os nós.
Se você configurar o grupo de execução para usar seu listener integrado para nós HTTP, deverá implementar o fluxo que inclui o nó HTTPReply no mesmo grupo de execução. Se o broker estiver configurado para iniciar o listener do broker para suportar nós HTTP, você deverá implementar o fluxo de respostas no mesmo broker, mas o grupo de execução não é significativo.
Para obter informações adicionais sobre como usar o listener integrado, consulte Listeners HTTP.
Se um cliente enviar uma solicitação compactada gzipar ou reduzir para o nó HTTPInput, ela será extraída usando a opção Descompactar Mensagem de Entrada. Essa descompactação ocorrerá apenas se o grupo de execução for configurado para que os nós HTTP usem o listener HTTP do grupo de execução e não o listener HTTP amplo do broker.
Um intermediário pode suportar vários nós HTTPInput. Ao configurar o nó HTTPInput, especifique os pedidos aos quais o nó atende no formato de caminho URL, excluindo os detalhes de host e de porta.
Por exemplo, se o broker estiver atendendo no endereço http://localhost:7080 e receber o pedido http://localhost:7080/Joe/Mary, o listener removerá o endereço HTTP, deixando o pedido Joe/Mary. O listener então corresponde esse pedido a informações especificadas na propriedade de URL do nó ou nós HTTPInput.
A correspondência é feita dos dados mais específicos para os dados mais genéricos; é possível usar um curinga (um asterisco) para satisfazer correspondências menos específicas. Por exemplo, se você tiver configurado um nó HTTPInput para aceitar pedidos que correspondam a /Joe/Mary, esse nó receberá a mensagem. No entanto, se o pedido for http://localhost:7080/Joe/Sally, a correspondência não será feita com esse nó. Ele pode corresponder com um nó que possui uma URL mais genérica, tal como um dos seguintes valores:
/Joe/*
/*
Se o pedido não corresponder a nenhuma propriedade de URL e não houver um nó de entrada com /* especificado, o nó HTTPInput retornará uma resposta ao originador.
É possível usar uma URL de /* para capturar todos os pedidos que falharam na correspondência com as URLs nos nós HTTPInput para que seja possível enviar uma mensagem de resposta e executar outras ações apropriadas.
Este exemplo usa a porta 7080, que é a porta HTTP padrão para o listener do broker inteiro. Os números de porta padrão para o listener do grupo de execução integrado são 7800 para HTTP e 7843 para HTTPS. É possível alterar estes números de porta e intervalos de porta que são usados pelos listeners do grupo de execução, usando o comando mqsichangeproperties.
Se estiver usando nós SOAP e nós HTTP em fluxos de mensagens em um único broker, você poderá escolher manipular mensagens HTTP usando o listener do broker ou listeners de grupos de execução integrados. Se um listener em sua configuração receber mensagens que os nós SOAPInput e HTTPInput podem obter, você deverá verificar com cuidado as especificações de URL nesses nós. Se ambas as especificações de URL corresponderem a uma mensagem recebida, o tipo errado de nó poderá obter a mensagem e o processamento poderá falhar ou produzir resultados inesperados. Essa situação ocorrerá se você especificar valores idênticos para as propriedades Sufixo de caminho para URL dos nós HTTPInput e SOAPInput. Também poderá ocorrer se você usar curingas em uma das especificações ou em ambas, e uma mensagem recebida corresponder a ambas as propriedades.
Se desejar usar o listener do broker para o tráfego de HTTP e HTTPS, verifique se as propriedades do broker para as portas listener para HTTP e HTTPS são adequadas. A porta padrão para HTTP é 7080; a porta padrão para HTTPS é 7083.
Se desejar usar o listener do grupo de execução, você deverá configurar o grupo de execução usando o comando mqsichangeproperties para ativar o listener para mensagens HTTP e HTTPS. A porta padrão para HTTP é 7800; a porta padrão para HTTPS é 7843. É possível alterar estes números de porta, e os intervalos a partir dos quais as portas são alocadas, usando o comando mqsichangeproperties.
Se desejar coletar informações de rastreamento sobre o processamento de mensagens HTTP, consulte Resolvendo Problemas ao Usar Nós HTTP e SOAP.
O nó HTTPInput roteia cada mensagem recuperada com êxito para o terminal Out. Se a validação da mensagem falhar, a mensagem será roteada para o terminal de falha (Failure); você poderá conectar nós a esse terminal para identificar essa condição. Se você não estiver conectado o termina de Falha, a mensagem é descartada, o Tempo de espera máximo do cliente expira e um erro é retornado para o cliente. Não há nenhuma outra situação em que a mensagem é roteada para o Terminal de Falha.
Se a mensagem for capturada por esse nó após a emissão de uma exceção no fluxo de mensagens, a mensagem será roteada para o terminal de captura (Catch). Se você não tiver conectado o terminal de Captura, a mensagem é descartada, o Tempo de espera máximo do cliente e um erro é retornado ao cliente.
Quando tiver colocado uma instância do nó HTTPInput em um fluxo de mensagens, você poderá configurá-lo; consulte Configurando um Nó do Fluxo de Mensagens. As propriedades do nó são exibidas na visualização Propriedades.
Os terminais do nó HTTPInput são descritos na tabela a seguir.
Terminal | Descrição |
---|---|
Defeito | O terminal de saída para o qual a mensagem será roteada se ocorrer um erro. |
Saída | O terminal de saída para o qual a mensagem será roteada se for recuperada com êxito. |
HTTPTimeout | O terminal de saída para o qual uma mensagem de falha de tempo limite é roteada se o nó do HTTPReply que está conectado ao terminal Out não responda dentro do intervalo de tempo que é especificado pela propriedade Tempo de espera máximo do cliente. Este terminal será usado apenas se o grupo de execução for configurado para que os nós HTTP usem o listener do grupo de execução integrado. |
Capturar | O terminal de saída para o qual a mensagem será roteada se for emitida uma exceção downstream e capturada por este nó. |
As tabelas a seguir descrevem as propriedades do nó. A coluna com cabeçalho M indica se a propriedade é obrigatória (marcada com um asterisco caso seja necessário digitar um valor quando nenhum padrão for definido); a coluna com cabeçalho C indica se a propriedade é configurável (você poderá alterar o valor quando incluir o fluxo de mensagens ao arquivo BAR para implementá-lo).
As propriedades Descrição do nó HTTPInput são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Nome do Nó | Não | Não | O tipo de nó, HTTPInput | O nome do nó. |
Short description | Não | Não | Uma breve descrição do nó. | |
Descrição Longa | Não | Não | Texto que descreve a finalidade do nó no fluxo de mensagens. |
As propriedades Básicas do nó HTTPInput são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Sufixo de caminho para URL (Path suffix for URL) | Sim | Sim | Essa propriedade identifica o local de onde os pedidos de serviços da web são recuperados. Não utilize a URL completa. Se a URL que você deseja for http://hostname[:port]/[path], especifique /path ou /path fragment/*, em que * é um curinga que é possível usar para significar qualquer correspondência. | URLSpecifier | |
Utilizar HTTPS | Não | Sim | Não selecionada | Essa propriedade identifica se o nó aceitará HTTP seguro. Se o nó for aceitar HTTP seguro, selecione a caixa de opção. | useHTTPS |
As propriedades Avançadas do nó HTTPInput são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Configurar lista de destino | Não | Não | Selecionada | Esta propriedade especifica se incluir o nome da ligação do método na rota para a lista de destino do rótulo. Se você selecionar esta caixa de opção, o nome da ligação do método será incluído para que seja possível utilizar um nó RouteToLabel no fluxo de mensagens após o nó HTTPInput. | |
Prefixo do rótulo | Não | Não | Nenhuma | O prefixo a ser incluído no nome do método ao rotear para o rótulo. Inclua um prefixo do rótulo para evitar um conflito de nós de rótulo correspondentes quando você incluir vários nós de entrada do WebSphere Message Broker no mesmo fluxo de mensagens. Por padrão, não há prefixo de etiqueta, portanto o nome do método e da etiqueta são idênticos. | |
Analisar Cadeia de Consultas | Não | Não | False | Esta propriedade faz com que qualquer cadeia de consultas que esteja
presente com uma mensagem recebida seja analisada e decodificada (de acordo
com http://tools.ietf.org/html/rfc3986) no
seguinte local no ambiente local como uma série de elementos nome-valor
que correspondem aos nomes e valores presentes na cadeia de consultas: LocalEnvironment.HTTP.Input.QueryString Por
exemplo, para esta cadeia de consultas:
?myParam1=my%22Value%221&myParam2=my%22Value%222 os seguintes elementos são colocados no ambiente local sob a pasta QueryString:
myParam1 com um valor igual a my"Value"1 Caso QueryString use um conjunto de caracteres que não seja UTF-8, é possível usar a variável de ambiente MQSI_HTTP_QUERY_STRING_CCSID para especificar o CCSID de QueryString. Por exemplo, caso seu nó HTTPRequest tiver um QueryStringCCSID de 943, é possível configurar MQSI_HTTP_QUERY_STRING_CCSID para 943 para converter os parâmetros de sequência para a página de código 943. |
|
Decompactar Mensagem de Entrada | Não | Sim | Não selecionada | Essa propriedade indica se um pedido de HTTP de entrada foi descompactado ou não. Esta propriedade será usada apenas se o grupo de execução estiver configurado para que os nós HTTP usem o listener HTTP do grupo de execução integrado. Se esta opção for selecionada e o campo Content-Encoding do cabeçalho HTTP for "gzip" ou "deflate", a mensagem de entrada será descompactada e propagada para o terminal Out, e o campo Content-Encoding será removido. |
decompressInputMessage |
As propriedades Análise de Mensagem de Entrada do nó HTTPInput são descritas na tabela a seguir.
As propriedades das Opções do Analisador para o nó HTTPInput são descritas na tabela a seguir.
Propriedade | M | A | O padrão | Descrição |
---|---|---|---|---|
Domínio de mensagem | Não | Não | BLOB | O domínio usado para analisar a mensagem. Se o campo estiver em branco, o padrão será BLOB. |
Modelo de mensagem | Não | Não | Desmarcada | O nome do local do arquivo de esquema do modelo de mensagem no qual a mensagem é definida. Essa lista é preenchida com todos os arquivos de esquema de modelo de mensagem disponível para o domínio de mensagem selecionado. |
Message | Não | Não | Desmarcada | O nome ou local da raiz de mensagem em seu arquivo de esquema de modelo de mensagem. Essa lista é preenchida com todas as mensagens disponíveis definidas no modelo de mensagem que você selecionou. |
Formato físico | Não | Não | Desmarcada | O nome do formato físico da mensagem. Se estiver utilizando o analisador MRM ou IDOC, selecione da lista o formato físico da mensagem que chega. Essa lista inclui todos os formatos físicos que você definiu para o modelo de mensagem selecionado. Se você configurar a propriedade Domínio de Mensagem como DataObject, poderá configurar esta propriedade como XML ou SAP ALE IDoc. Configure esta propriedade como SAP ALE IDoc quando precisar analisar um fluxo de bits a partir de uma origem externa e gere uma árvore de mensagens. |
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Cronometragem de análise (Parse timing) | Não | Não | On Demand | Esta propriedade controla quando uma mensagem de entrada é analisada. Os valores
válidos são On
Demand,
Imediato e
Completo. Por padrão, esta propriedade é configurada como On Demand, o que faz com que a análise da mensagem seja atrasada. Para que a mensagem seja analisa imediatamente, consulte Analisando On Demand. |
Construir árvore utilizando tipos de dados de esquema XML | Não | Não | Não selecionada | Esta propriedade controla se o analisador XMLNSC cria elementos da sintaxe na árvore de mensagens com tipos de dados obtidos do esquema XML. Você pode selecionar esta propriedades apenas se configurar a propriedade Validar na guia Validação ou Conteúdo ou Conteúdo e Valor. |
Utilizar analisador compacto XMLNSC para domínio XMLNS | Não | Não | Não selecionada | Essa propriedade controla se o Analisador Compacto XMLNSC (XMLNSC Compact Parser) é utilizado para mensagens no Domínio XMLNS (XMLNS Domain). Se você definir essa propriedade, os dados da mensagem serão exibidos em XMLNSC nos nós que estão conectados ao terminal de saída, quando o cabeçalho de entrada MQRFH2 ou a Propriedade de Analisador da mensagem de entrada Domínio de Mensagens for XMLNS. |
Reter conteúdo misto (Retain mixed content) | Não | Não | Não selecionada | Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar texto misto em uma mensagem de entrada. Se você selecionar a caixa de opções, serão criados elementos para texto misto. Se você desmarcar a caixa de opções, texto misto será ignorado e nenhum elemento será criado. |
Reter comentários (Retain comments) | Não | Não | Não selecionada | Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar comentários em uma mensagem de entrada. Se você selecionar a caixa de opções, serão criados elementos para comentários. Se você desmarcar a caixa de opções, comentários serão ignorados e nenhum elemento será criado. |
Reter instruções de processamento (Retain processing instructions) | Não | Não | Não selecionada | Esta propriedade controla se o analisador XMLNSC cria elementos na árvore de mensagens ao encontrar instruções de processamento na mensagem de entrada. Se você selecionar a caixa de opções, serão criados elementos para instruções de processamento. Se você desmarcar a caixa de opções, instruções de processamento serão ignoradas e nenhum elemento será criado. |
Elementos opacos | Não | Não | Em branco | Essa propriedade é utilizada para especificar uma lista de elementos na mensagem de entrada que devem ser analisados em segundo plano pelo analisador XMLNSC. A análise seletiva será desempenhada apenas se a validação não estiver ativada (ou seja, se Validar for Nenhum); as entradas especificadas em Elementos Ignorados serão ignoradas se a validação estiver ativada. |
As propriedades de manipulação de Erro do Nó HTTPInput são descritas na tabela a seguir.
Propriedade | M | C | Padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Tempo de espera máximo do cliente (seg) | Sim | Sim | 180 | O período de tempo, em segundos, que o listener
TCP/IP que recebeu a mensagem de entrada do cliente de serviço da Web aguarda
por uma resposta do nó HTTPReply
no fluxo de mensagens.
O intervalo válido é de zero (que significa uma espera curta) até (231)-1.
Se for recebida uma resposta nesse período, o listener
propagará a resposta para o cliente. Se não for recebida uma resposta dentro desse tempo, uma mensagem de falha
será gerada indicando que o tempo limite expirou. Essa mensagem de falha é enviada pelo
listener ou pelo processamento do terminal de tempo limite. Para obter informações sobre o terminal de Tempo Limite HTTP, consulte Conectando Terminais e Terminais e Propriedades. |
|
Formato de falha | Não | Sim | SOAP 1.1 | O formato de qualquer erro HTTP retornado ao cliente. Os valores válidos são SOAP 1.1, SOAP 1.2 e HTML. | faultFormat |
As propriedades Validação do nó HTTPInput são descritas na tabela a seguir. Se uma mensagem for propagada para o terminal Failure do nó, ela não será validada. Para obter informações adicionais, consulte o Validando Mensagens e o Propriedades de Validação.
Propriedade | M | C | Padrão | Descrição | Propriedade do Comando mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | Não | Sim | Nenhuma | Essa propriedade controla se a validação ocorre. Os valores válidos são Nenhum, Conteúdo e Valor e Conteúdo. | validatemaster |
Ação de falha | Não | Não | Exceção | Essa propriedade controla o que acontecerá se a validação falhar. Você pode configurar essa propriedade somente se configurar Validar como Conteúdo ou Conteúdo e Valor. Os valores válidos são Rastreio do Usuário, Registro de Erros Local, Exceção e Lista de Exceções. |
As propriedades Segurança do nó HTTPInput são descritas na tabela a seguir. Configure os valores para as propriedades que controlam a extração de uma identidade a partir de uma mensagem quando um perfil de segurança está associado ao nó. Para obter informações adicionais sobre estas propriedades, consulte Identidade, Configurando a Extração de uma Identidade ou Token de Segurança, Visão Geral de Segurança do Fluxo de Mensagens, e Configurando a Segurança do Fluxo de Mensagens
Propriedade | M | C | Padrão | Descrição |
---|---|---|---|---|
Tipo de token de identidade | Não | Não | Nenhuma | Esta propriedade especifica o tipo de token de identidade que está presente na mensagem
recebida. Os valores válidos são:
|
Local do token de identidade | Não | Não | Nenhuma | Essa propriedade especifica onde, na mensagem, a identidade pode ser localizada. O local é especificado como uma referência de campo ESQL, uma expressão XPath ou uma cadeia literal. Se você usar uma cadeia literal, ela deverá ser colocada entre aspas simples e não deverá conter um ponto (.). Se essa propriedade não for especificada, a identidade será recuperada dos cabeçalhos de Transporte de Autorização. |
Local da senha de identidade | Não | Não | Nenhuma | Essa propriedade especifica onde, na mensagem, a senha pode ser localizada. O local é especificado como uma referência de campo ESQL, uma expressão XPath ou uma cadeia literal. Se você usar uma cadeia literal, ela deverá ser colocada entre aspas simples e não deverá conter um ponto (.). Se você não especificar um valor para essa propriedade, a senha será recuperada dos cabeçalhos de Transporte de Autorização. Você pode configurar esta propriedade apenas se o Tipo de identidade estiver configurado como Nome de Usuário + Senha. |
Local de IssuedBy da identidade | Não | Não | Nenhuma | Esta propriedade especifica uma cadeia ou expressão de caminho
que descreve o emissor da identidade. O local é especificado como uma referência de campo ESQL, uma expressão XPath ou uma cadeia literal. Se você usar uma cadeia literal, ela deverá ser colocada entre aspas simples e não deverá conter um ponto (.). O valor especifica o Emissor que é passado para um provedor STS WS-Trust v1.3. Se você não especificar um valor para esta propriedade, o valor padrão será o nome do Agente Usuário ou, se este nome não for configurado, o HTTP da cadeia. |
Tratar exceções de segurança como exceções normais | Não | Não | False | Esta propriedade especifica se as exceções de segurança (como Acesso Negado) devem ser tratadas como exceções normais, e propagadas para o terminal Failure (se conectada). Esta opção é desativada por padrão, o que assegura que as exceções de segurança causam a restauração da mensagem, mesmo que o terminal Failure esteja conectado. |
Propriedade | M | P | Default | Descrição |
---|---|---|---|---|
Eventos | Não | Não | Nenhum | Eventos definidos para o nó são exibidos nesta guia. Por padrão, nenhum evento de monitoramento é definido em um nó do fluxo de mensagens. Utilize Incluir, Editar,
e Excluir para criar, alterar ou excluir eventos de monitoração no nó; consulte Configurando fontes de eventos de monitoramento utilizando propriedades de monitoramento para detalhes. É possível ativar e desativar eventos mostrados aqui selecionando ou desmarcando a caixa de opções Ativado. |