Lendo messagens em uma fila!

1 resposta
S

Ai galera, ja consigo enfileirar as mensagens numa fila (JBOSS)…

Fiz uma classe teste para poder ler estas mensagens nas ainda não estou conseguindo…
Não da erro nenhum, so não mostra as mensagens…
codigo abaixo

import java.util.Properties;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class Teste {
	public static void main(String[] args) {
		ReceiverMessage receiverMessage = new ReceiverMessage();
		try {
			receiverMessage.connect();
		} catch (NamingException e) {
			e.printStackTrace();
		} catch (JMSException e) {
			e.printStackTrace();
		}
		
		while(true) {
			try {
				Thread.sleep(5000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

class ReceiverMessage implements MessageListener {

    private QueueConnection queueConnection;
    private QueueSession queueSession;
    private Queue queue;
    private String queueName = "OutputMessageQueue";
	
    public void connect() throws NamingException, JMSException {
    	InitialContext initialContext;
    	
    	Properties properties = new Properties();
    	properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    	properties.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
    	//properties.put(Context.PROVIDER_URL, "");
    	
		initialContext = new InitialContext(properties);
		QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) initialContext.lookup("ConnectionFactory");
		queueConnection = queueConnectionFactory.createQueueConnection();
		queue = (Queue) initialContext.lookup("queue/" + queueName);
		queueSession = queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
		QueueReceiver queueReceiver = queueSession.createReceiver(queue);
        queueReceiver.setMessageListener(this);
    }
    
	public void onMessage(Message message) {
		System.out.println("****************** Mensagem Recebida ******************");
		if(message instanceof TextMessage) {
			TextMessage textMessage = (TextMessage) message;
			try {
				System.out.println("Mensagem " + textMessage.getStringProperty("ID") + " recebida com sucesso.");
				System.out.println("Corpo da mensagem = " + textMessage.getText());
			} catch (JMSException e) {
				e.printStackTrace();
			}	
		}
		System.out.println("*******************************************************");
		
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}	
}

1 Resposta

S

Ai galera resolvi o problema…

Se alguem estiver com dificuldades da uma olhada ai

http://www.guj.com.br/posts/list/62262.java

vlw!!!

Criado 14 de junho de 2007
Ultima resposta 15 de jun. de 2007
Respostas 1
Participantes 1