1
resposta

Exemplo processando um pedido financeiro

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();
            }
        }
    }
1 resposta

Muito bom Thiago