Executando a Amostra Host de Serviço da Web

Quando você executa a amostra Host de Serviço da Web, o intermediário recebe uma mensagem SOAP/XML através do protocolo HTTP e envia de volta uma mensagem de resposta SOAP/XML, utilizando novamente o HTTP. Assim, o intermediário está agindo como um host de serviço da Web.

O intermediário recolhe os dados dessa mensagem SOAP e gera uma nova mensagem mapeada para um arquivo de cabeçalho C. Ela é enviada para um aplicativo legado utilizando o WebSphere MQ. O aplicativo legado responde e os dados dessa resposta são colocados na resposta HTTP que o intermediário gera. Desse modo, o intermediário confrontou um aplicativo legado como um serviço da Web.

Para executar a amostra Host de Serviço da Web:

  1. Implemente o arquivo bar WSHOST.bar no intermediário. Este arquivo está no projeto do fluxo de mensagens WSHOST_MFP1.
  2. Inicie o aplicativo legado.

    O aplicativo legado é gravado em C e iniciado com os dois parâmetros de entrada: um nome do gerenciador de filas e um nome de fila do WebSphere MQ. O aplicativo lê mensagens da fila e do gerenciador de filas, e envia respostas para a fila e o gerenciador de filas especificados nas informações de resposta da mensagem de entrada.

    Duas versões executáveis do aplicativo legado são fornecidas:

    A amostra é configurada para executar o aplicativo legado utilizando o mesmo gerenciador de filas do WebSphere MQ que o intermediário. Se seu intermediário for utilizar um gerenciador de filas diferente para o aplicativo legado, você vai precisar configurar seus gerenciadores de fila do WebSphere MQ (intermediário e legado) para a intercomunicação.

    Você também deve fazer uma pequena alteração no MQOutput para o nó legado no fluxo de mensagens WSHOST_WSHOST1. Configure a propriedade Básica Nome do Gerenciador de Filas como o nome do gerenciador de filas do aplicativo legado.

    Caso queira executar o aplicativo legado em uma plataforma que não seja Windows ou Linux, os arquivos de origem serão fornecidos no projeto WSHOST_LEGACY. O arquivo de origem C é legacyservice.c, com arquivos de cabeçalho legacyservice.h e legacyservice2.h. Compile utilizando um compilador de sua escolha e, em seguida, execute o aplicativo seguindo as orientações acima para os parâmetros de entrada.

    As mensagens de entrada e saída são mapeadas para a seguinte estrutura C:

    typedef struct tagIA81CONF {
       char MessageId[8];
       char OrderNumber[8];
       char ItemReference[12];
       char ItemQuantity[8];
       char CustomerNumber[12];
       char DeliveryRef[8];
       char Confirm[1];
       char filler1[3];
    } IA81CONF;
    

    Isso é fornecido no arquivo legacyservice.h do projeto WSHOST_LEGACY. Observe que esse arquivo de cabeçalho também contém outras estruturas

  3. Coloque uma mensagem SOAP na URL especificada no nó HTTPInput. Se você não tiver um utilitário para fazer isso, existem diversas ferramentas freeware disponíveis.

    Todas as mensagens de teste utilizadas na execução dessa amostra são baseadas no seguinte formato:

    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope 	xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:c="http://www.brokersamplewshost.ibm.com"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <soapenv:Body>
            <c:IA81CONFIN>
                <MessageId>IA81CONF</MessageId>
                <OrderNumber>ON4002</OrderNumber>
                <ItemReference>IY4003</ItemReference>
                <ItemQuantity>4</ItemQuantity>
                <CustomerNumber>CY4004</CustomerNumber>
            </c:IA81CONFIN>
        </soapenv:Body>
    </soapenv:Envelope>

Entendendo os Resultados

A amostra Host de Serviço da Web chama um aplicativo legado com uma mensagem chamada msg_tagIA81CONF. Na mensagem, um campo chamado DeliveryRef é configurado em branco na entrada, e na saída é configurado como JOHNCORP. Além disso, um campo chamado Confirm é configurado em branco na entrada, e na saída é configurado como Y ou N, dependendo se o campo de entrada ItemReference contiver o caractere Y.

Se você estiver utilizando Nettool, a área de janela direita conterá a resposta HTTP.

A mensagem de resposta da mensagem de entrada acima é a seguinte:

<?xml version="1.0"?>
<tns:Envelope xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:NS1="http://www.brokersamplewshost.ibm.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tns:Body>
        <NS1:IA81CONFOUT>
            <MessageId>IA81CONF</MessageId>
            <OrderNumber>ON4002</OrderNumber>
            <ItemReference>IY4003</ItemReference>
            <ItemQuantity>4</ItemQuantity>
            <CustomerNumber>CY4004</CustomerNumber>
            <DeliveryRef>JOHNCORP</DeliveryRef>
            <Confirm>Y</Confirm>
        </NS1:IA81CONFOUT>
    </tns:Body>
</tns:Envelope>

Ícone Página Principal   Voltar para Home da Amostra