Tutorial de JMS usando o JBOSS

Ai galera, alguem teria um tutorial de JMS usando o JBOSS 4.2.x???

Eu ate tentei usar o exemplo deles mais achei meio confuso…

Vlw!!!

http://docs.jboss.org/jbossas/jboss4guide/r2/html/ch6.chapt.html

ai cara vlw!!!

Ja to conseguindo enfileirar as mensagens no JBoss

so que para ler as mensagens ainda to tento problema…
O pior e que não da erro e nem entra no metodo onMessage…

vou postar o codigo ai, se alguem poder ajudar vlw!!!

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

Altere duas coisinhas no seu teste:

public class Teste {
 	public static void main(String[] args) {
 		ReceiverMessage receiverMessage = new ReceiverMessage();
 		try {
 			receiverMessage.connect();
                        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
                        reader.readLine();
 		} catch (NamingException e) {
 			e.printStackTrace();
 		} catch (JMSException e) {
 			e.printStackTrace();
 		} catch(IOException e) {}
 	}
 }

não da erro, mas tambêm não está entrando no metodo onMessage()…

Daniel poderia me explicar oq essas 2 linhas estão fazendo???

Pode ser tambêm que eu nãoe esteja conseguindo enfileirar as mensagens corretamento…

Contudo, estou assumindo que a parte de enfileiramento esta funcionando, pois, no aplicativo de administração do JBoss, está dissendo que na fila possui 4 mensagens…

http://img527.imageshack.us/my.php?image=queuepi3.png

Ae galera resolvi o problema…

faltou um queueConnection.start(), no final do metodo que realização a conexão…

Vlw pela ajuda…

Alguem sabe se tem com fazer um client que envie mensagens jms para uma fila num servidor fora da rede local?