Para funcionar o exemplo criar as filas
fila.req.financeiro fila.rsp.financeiro
Na hora de enviar a mensagem para fila.req.financeiro setar a propriedade Reply To para fila.rsp.financeiro
jndi.properties
queue.fila.req.financeiro = fila.req.financeiro queue.fila.rsp.financeiro = fila.rsp.financeiro
public static void main(String[] args) throws Exception {
//pega as propriedades jndi.properties, la tem falando qual sera factory utilizada(webshreMQ,ActiveMQ);
InitialContext initialContext = new InitialContext();
// pega a ConnectionFactory do jar do mq(webshereMQ,ActiveMQ) por exemplo.
ConnectionFactory connectionFactory = (ConnectionFactory) initialContext.lookup("ConnectionFactory");
Connection createConnection = connectionFactory.createConnection();
createConnection.start();
Session createSession = createConnection.createSession(false,Session.AUTO_ACKNOWLEDGE);
Destination fila = (Destination) initialContext.lookup("fila.req.financeiro");
MessageConsumer createConsumer = createSession.createConsumer(fila );
Message message = createConsumer.receive(30000);
if(message != null) {
System.out.println("Processando a mensagem id:: "+message.getJMSCorrelationID());
System.out.println("mensagem :: "+message);
System.out.println("Processando a resposta ");
System.out.println("resposta automatica");
try {
Destination jmsReplyTo = message.getJMSReplyTo();
MessageProducer createProducer = createSession.createProducer(jmsReplyTo);
createProducer.send(createSession.createTextMessage("requisicao processada"));
System.out.println("Mensagem enviada com sucesso");
} catch (Exception e) {
e.printStackTrace();
}
}
}