Tags

, , , , ,

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:

Estou utilizando a Versão: 3.6.2 conforme abaixo:

Imagem Blog UansCarvalho

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:

Imagem Blog UansCarvalho

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:

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Clique agora no Menu e selecione File >> New >> Business Service e em File Name: coloque BlogJmsPublishQueueBusiness.biz e clique em Finish

Imagem Blog UansCarvalho

Na tela abaixo selecione a opção Messaging Service na guia General conforme abaixo:

Imagem Blog UansCarvalho

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.

Imagem Blog UansCarvalho

Então deverá ficar assim:

Imagem Blog UansCarvalho

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:

Imagem Blog UansCarvalho

Clique agora na guia JMS Transport e em Message Type selecione Text (neste caso a mensagem será enviada no formato texto)

Imagem Blog UansCarvalho

Pronto, já temos nosso Business criado, vamos agora criar nosso Proxy que fará a chamada deste Business.

Clique sobre a pasta Proxy

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Na guia General clique em WSDL Web Service e posteriormente em Browse, então clique em BlogJmsPublishQueuePublisherServiceSoapBinding (binding)  e clique em OK

Imagem Blog UansCarvalho

Então teremos a seguinte tela:

Imagem Blog UansCarvalho

Clique na guia Transport e em EndPoint URI coloque /BlogJmsPublishQueueProxy

Imagem Blog UansCarvalho

Agora clique na guia Messagem Flow e arraste um Pipeline Pair para que fique conforme abaixo:

Imagem Blog UansCarvalho

Dentro do PipelinePairNode1 e abaixo do Request Pipeline arraste um Stage e para dentro do Stage arraste um Publish conforme abaixo:

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Para dentro do Publish arraste agora um Replace

Imagem Blog UansCarvalho

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:

Imagem Blog UansCarvalho

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)

Imagem Blog UansCarvalho

Ficará assim:

Imagem Blog UansCarvalho

Agora no seu Response Pipeline arraste mais um Stage e para dentro do Stage arraste um Replace para que fique como abaixo:

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

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:

Imagem Blog UansCarvalho

Clique em Resource Browser e ao lado direito deverá aparecer o nosso Proxy BlogJmsPublishQueueProxy

Imagem Blog UansCarvalho

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>

Imagem Blog UansCarvalho

Clique em Execute e veja abaixo como deverá aparecer:

Imagem Blog UansCarvalho

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:

Imagem Blog UansCarvalho

Na tela abaixo clique em JMS Modules conforme abaixo:

Imagem Blog UansCarvalho

Clique agora em BlogModule

Imagem Blog UansCarvalho

Clique em BlogQueue

Imagem Blog UansCarvalho

Agora clique em Monitoring

Imagem Blog UansCarvalho

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.

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Agora teremos:

Imagem Blog UansCarvalho

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

Imagem Blog UansCarvalho

Agora clique ao lado do ID: que será um link para mostrar a Mensagem:

Imagem Blog UansCarvalho

Imagem Blog UansCarvalho

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