Construindo um serviço sÃncrono-assÃncrono – parte 2: Aplicação Legada 0
Bom, como já disse, não gosto muito de chamar de “legadas” as aplicações que serão ativadas pelo BUS em um arquitetura SOA. A não ser é claro, que realmente façam jus a este nome. O que não gosto é de construir uma nova aplicação que conterá realmente a lógica de negócio do zero, e ainda chamá-la de legada, e olha que isso é mais comum do que pensamos.
Enfim, a nossa grande aplicação que será ativada pelo BUS via JMS, seguindo o desenho deste post se chamará “ReverseIt”, e conterá uma lógica nuclear de inverter a string que receberá como parâmetro. Não vou entrar em detalhes dos detalhes da criação do projeto na IDE, mas basicamente será um “Web Service Project” com o facet do XMLBeans Builder Library, para que ele converta nosso XSD em objetos java facilmente. A aplicação está rodando em um domÃnio Weblogic Server puro, em localhost:30000.
Vamos definir um schema XSD (dentro da pasta schemas) que contenha a operação de request e de response para a operação. Obviamente como temos um parâmetro string para entrada e outro para saÃda, ficaria algo bem trivial, basicamente o escrito abaixo:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"Â
     targetNamespace="http://blog.lucastex.com/reverseit"Â
     xmlns:revit="http://blog.lucastex.com/reverseit"Â
     elementFormDefault="qualified">
   <element name="reverseItRequest" type="revit:ReverseItRequest"></element>
   <element name="reverseItResponse" type="revit:ReverseItResponse"></element>
   (...) definição e descrição dos tipos (...)
</schema>
Agora vamos:
- Criar um web service como de costume
- Configurar entrada do serviço para ReverseItRequest
- Configurar saÃda do serviço para ReverItResponse
- Escrever a lógica para inversão da palavra
Â
public ReverseItResponseDocument reverseIt(ReverseItRequestDocument request) {
  Â
   (...) 1- Pegar input do request
   (...) 2- Inverter a string
   (...) 3- Retornar no responseÂ
}
Legal, mas até aà temos o nosso Web Service tão padrão quanto todos que já fizemos, vamos agora para as anotações, que vão garantir que o serviço trabalhe de forma assÃncrona. Bom, como ele funcionará via JMS, uma coisa que temos que fazer é criar uma fila JMS onde serão colocadas as mensagens que este serviço irá consumir, e também uma fila de resposta, para que ele coloque as mensagens de response. Não podemos esquecer também da ConnectionFactory o nosso serviço. Estes foram os nomes que eu dei:
- Fila de Request: reversit.jms.requestQueue
- Fila de Response: reverseit.jms.responseQueue
- ConnectionFactory: reversit.jms.connectionFactory
@WLJmsTransport(serviceUri="ReverseIt", portName="ReverseItPort", connectionFactory="reverseit.jms.connectionFactory", queue="reverseit.jms.requestQueue", contextPath = "ReverseIt")


































































