Tutorial de JMS usando o JBOSS

6 respostas
S

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!!!

6 Respostas

D

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

S

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

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) {}
 	}
 }
S

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

S

Ae galera resolvi o problema…

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

Vlw pela ajuda…

T

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

Criado 14 de junho de 2007
Ultima resposta 10 de jan. de 2008
Respostas 6
Participantes 4