No Post anterior aprendemos a Criar e Configurar uma Fila JMS, neste Post vamos aprender a criar uma Mensagem e Publica-la em nossa fila criada anteriormente.
Consulte os Links abaixo para verificar as demais partes:
- Trabalhando com Mensagens JMS no OSB – Parte 1: Criando e Configurando as Filas
- Trabalhando com Mensagens JMS no OSB – Parte 2: Publicando uma Mensagem na Fila
- Trabalhando com Mensagens JMS no OSB – Parte 3: Recebendo a Mensagem
Estou utilizando a Versão: 3.6.2 conforme abaixo:
Vamos então criar nosso XSD que terão os parâmetros de entrada para nossa Mensagem, para isso faça o download do XSD DadosDepartamento.xsd
Tenha em mente o seguinte: Faça um XSD o mais genérico possível para que possamos evitar o alto acoplamento.
Este XSD também usaremos para receber estes mesmos dados da fila para gravarmos em nosso banco de dados.
E o coloque dentro da pasta XSD do seu OSB conforme abaixo:
Agora faça o download do nosso WSDL que será responsável por criar nosso Proxy: BlogJmsPublishQueue.wsdl
E o coloque dentro da pasta WSDL do seu OSB conforme abaixo:
Obs: Acima fique atento se seu WSDL e XSD estão nesta mesma hierarquia de pastas e se seu Projeto esteja com o mesmo nome que o meu (OSBProject) para que não haja problema no <xs:include conforme a seta acima, caso esteja diferente verifique a acerte o caminho.
Vamos agora criar o nosso Business Service:
Clique sobre a pasta Business
Clique agora no Menu e selecione File >> New >> Business Service e em File Name: coloque BlogJmsPublishQueueBusiness.biz e clique em Finish
Na tela abaixo selecione a opção Messaging Service na guia General conforme abaixo:
Clique agora sobre a guia Messaging e clique em XML e depois em Browse, depois escolha a opção dadosDepartamentoRequest(element) conforme abaixo e clique em OK.
Então deverá ficar assim:
Agora clique na guia Transport e em Protocol escolha jms e Endpoint URI preencha com:
jms://localhost:9000/ConnectionFactoryBlog/BlogQueue
Entenda:
- localhost:9000 = Endereço do meu Dominio OSB
- ConnectionFactoryBlog = Nome da minha ConnectionFactory
- BlogQueue = Nome que dei para minha Fila
Então clique em Add e ficará conforme abaixo:
Clique agora na guia JMS Transport e em Message Type selecione Text (neste caso a mensagem será enviada no formato texto)
Pronto, já temos nosso Business criado, vamos agora criar nosso Proxy que fará a chamada deste Business.
Clique sobre a pasta Proxy
Clique agora no Menu e selecione File >> New >> Proxy Service (cuidado, não é Proxy Server pois existe as duas opções) e em File Name: coloque BlogJmsPublishQueueProxy e clique em Finish
Na guia General clique em WSDL Web Service e posteriormente em Browse, então clique em BlogJmsPublishQueuePublisherServiceSoapBinding (binding) e clique em OK
Então teremos a seguinte tela:
Clique na guia Transport e em EndPoint URI coloque /BlogJmsPublishQueueProxy
Agora clique na guia Messagem Flow e arraste um Pipeline Pair para que fique conforme abaixo:
Dentro do PipelinePairNode1 e abaixo do Request Pipeline arraste um Stage e para dentro do Stage arraste um Publish conforme abaixo:
Clique em Publish e abaixo na guia Properties do Publish, clique em Browse e selecione o Business que criamos BlogJmsPublishQueueBusiness.biz e então clique em OK para selecionarmos este Business
Para dentro do Publish arraste agora um Replace
Clique sobre a caixa Replace e abaixo, em Properties faça o seguinte:
Clique em:
- Replace node contents para fazermos o replace do conteúdo do nosso body
- Em XPath clique sobre <XPath> e na caixa que abrir coloque apenas um ponto . conforme abaixo:
- Em In Variable: coloque a palavra body
Veja abaixo por enquanto está assim:
Clique agora em <Expression> e na caixa que abrirá conforme tela abaixo coloque o conteúdo a seguir que será o payload à ser enviado através de nossa fila.
<br:dadosDepartamentoRequest xmlns:br=”br.com.uansblog.BlogJmsPublishQueuePublisher”>
<br:numeroDepartamento>{data($body/br:dadosDepartamentoRequest/br:numeroDepartamento)}</br:numeroDepartamento>
<br:nomeDepartamento>{data($body/br:dadosDepartamentoRequest/br:nomeDepartamento)}</br:nomeDepartamento>
<br:localDepartamento>{data($body/br:dadosDepartamentoRequest/br:localDepartamento)}</br:localDepartamento>
</br:dadosDepartamentoRequest>
Obs: Para pegar o payload você pode chamar no SBConsole o seu Business (BlogJmsPublishQueueBusiness.biz) criado acima e pegar o conteúdo do Request, e dentro do payload você irá colocar os dados que serão recebidos do seu Body (por exemplo: $body/br:dadosDepartamentoRequest/br:numeroDepartamento)
Ficará assim:
Agora no seu Response Pipeline arraste mais um Stage e para dentro do Stage arraste um Replace para que fique como abaixo:
Clique sobre esse novo Replace e na guia Properties edite para que em Expression fique conforme abaixo, para isso arraste a operação de RESPONSE e coloque um /* no final e então clique em OK
Clique novamente sobre esta caixa Replace e abaixo, em Properties faça o seguinte:
Clique em:
- Replace node contents para que consigamos fazer o replace do conteúdo do nosso body
- Em XPath clique sobre <XPath> e na caixa que abrir coloque apenas um ponto . conforme abaixo:
- Em In Variable: coloque a palavra body
Pronto, já fizemos nosso processo para envio da Mensagem, agora vamos enviar a mensagem via console Web.
No seu Browser vá no endereço http://localhost:9000/sbconsole
Obs: A porta 9000 é o numero que escolhi ao criar o meu Domínio do OSB
Faça o Login:
Clique em Resource Browser e ao lado direito deverá aparecer o nosso Proxy BlogJmsPublishQueueProxy
Ao lado direito na guia Actions clique no ícone que parece uma “baratinha verde“: e preencha conforme abaixo:
<br:dadosDepartamentoRequest xmlns:br=”br.com.uansblog.BlogJmsPublishQueuePublisher”>
<br:numeroDepartamento>50</br:numeroDepartamento>
<br:nomeDepartamento>SISTEMAS</br:nomeDepartamento>
<br:localDepartamento>BRASIL</br:localDepartamento>
</br:dadosDepartamentoRequest>
Clique em Execute e veja abaixo como deverá aparecer:
Pronto, nossa menagem foi enviada…
Vamos agora acompanhar onde está parada nossa mensagem:
No seu Browser vá no endereço http://localhost:9000/console
Obs: A porta 9000 é o numero que escolhi ao criar o meu Domínio do OSB
Faça o Login:
Na tela abaixo clique em JMS Modules conforme abaixo:
Clique agora em BlogModule
Clique em BlogQueue
Agora clique em Monitoring
Na tela abaixo precisamos de uma visualização que se chama Messages Current e neste caso ainda não está aparecendo, caso o seu esteja pode pular este passo.
Então clique em Customize this table conforme tela acima e conforme abaixo ajuste para a coluna da direita os seguinte itens que para nós será interessante analisarmos agora e posteriormente clique em Apply
Agora teremos:
Veja que em Messages Current iremos ter a mensagem que enviamos e Messages Total a quantidade de Mensagens que enviamos
Para ver o conteúdo da Mensagem clique ao lado de BlogModule!BlogQueue e em Show Messages
Agora clique ao lado do ID: que será um link para mostrar a Mensagem:
Pronto, aqui neste Post vimos como criar e enviar uma Mensagem para nossa Fila, no próximo Post iremos ver como faremos para consumir essa Mensagem e gravá-la em nosso Banco de Dados.
Abraços e até a Próxima
/:-D