Na amostra, a operação é extraída da mensagem de solicitação SOAP, e um serviço configurável definido pelo usuário é usado para recuperar a URL do provedor de serviços da Web.
O assistente da amostra substitui a URL nos nós SOAPRequest nos arquivos bar do fluxo do consumidor. Se você escolher recriar os arquivos bar, é possível que essas configurações sejam limpas e o fluxo do gateway não seja chamado.
A amostra Web Services Gateway demonstra as seguintes tarefas:
Antes de iniciar, você deve estar familiarizado com as amostras existentes, sobre as quais essa amostra é construída.
O diagrama a seguir mostra o fluxo de mensagens do Gateway de Serviços da Web:
A tabela a seguir mostra os nós no fluxo de mensagens:
Tipo de Nó | Nome de Nó |
---|---|
SOAPInput | GatewayInput |
JavaCompute | ComputeURL |
SOAPRequest | Pedido SOAP |
SOAPReply | GatewayReply |
O nó SOAPInput opera no modo gateway e aceita os pedidos dos fluxos de consumidor da amostra Address Book ou da amostra SOAP Node.
O nó JavaCompute captura o nome da operação a partir da mensagem de solicitação recebida e o armazena no csName. O assistente de configuração da amostra cria um serviço configurável Definido pelo Usuário chamado Gateway e uma propriedade correspondente aos nomes da operação para dois fluxos de consumidor a partir das amostras existentes. O BrokerProxy é usado para obter o valor do serviço configurável e para configurar a URL para a solicitação no ambiente local.
List nodeset = (List)message.getRootElement().evaluateXPath("SOAP/Body/*[1]"); String csName=((MbElement)(nodeset.get(0))).getName(); String URL = null; try { //Get the broker proxy BrokerProxy bp = BrokerProxy.getLocalInstance(); //Find the URL from a configurable service URL = bp.getConfigurableServiceProperty("UserDefined/Gateway/"+csName); } catch (Exception e) { URL="/"; } //Set the WebServiceURL creating the path if it doesn't exist le.getRootElement().evaluateXPath("?Destination/?SOAP/?Request/?Transport/?HTTP/?WebServiceURL[set-value('"+URL+"')]");
O nó SOAPRequest envia o pedido para o fluxo de provedor apropriado.
O nó SOAPReply retorna a resposta para o fluxo do consumidor de chamada.
As mensagens SOAP são geradas pelos fluxos do consumidor e do provedor existentes. O fluxo de gateway usa o nome da operação para roteá-lo para o provedor correto.
Após executar a amostra, é possível que você queira estendê-la incluindo outro provedor de serviço da Web. Como é usado um serviço configurável para armazenar a URL para o provedor, basta incluir uma propriedade com o nome de uma operação de serviço existente e o conjunto de valores na URL.