Problemas com JMS

3 respostas
R

ola galera tudo bem

Entao estou tentando fazer um exemplo da apostila da caelum sobre jms …

O exemplo deles funcionou legal . porem tentei mudar um pouco ao invés de passar uma string estou tentando passar um obj … porem da ClassCastException

segue abaixo o codigo , gostaria de saber como faço para minha classe listener receber um obj

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class PreparaListener {
	public static void main(String[] args) throws JMSException, NamingException {
		
		InitialContext context = new InitialContext();

		ConnectionFactory factory = (ConnectionFactory) context.lookup("ConnectionFactory");
		
		Connection connection = factory.createConnection();
		
		Session s = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		
		Destination caelum = (Destination) context.lookup("caelum");
		
		MessageConsumer consumer = s.createConsumer(caelum);
		
		consumer.setMessageListener(new CaelumListener());
		
		connection.start();
	}
}
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class MandaMensagem {

	public static void main(String[] args) throws NamingException, JMSException {
		
		InitialContext context = new InitialContext();
		
		ConnectionFactory factory = (ConnectionFactory) context.lookup("ConnectionFactory");
		
		Connection connection = factory.createConnection();
		
		Session s = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		
		connection.start();
		
		Destination caelum = (Destination) context.lookup("caelum");
		
		MessageProducer sender = s.createProducer(caelum);
		
	//	TextMessage message = s.createTextMessage("Enviando uma mensagem com jms!");
		
		Pessoa renan = new Pessoa();
		
		ObjectMessage pessoaMessage = s.createObjectMessage(renan);
		
				
	//	sender.send(message);
		
		sender.send(pessoaMessage);
	}

}
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.jms.TextMessage;

public class CaelumListener implements MessageListener {

	@Override
	public void onMessage(Message objMessage) {
		try {
			//TextMessage text = (TextMessage) message;
			ObjectMessage obj = (ObjectMessage) objMessage;
			System.out.println("Mensagem recebida:" + obj.getObject());
		} catch (JMSException e) {
			e.printStackTrace();
		}

	}

}
import java.io.Serializable;

public class Pessoa implements Serializable{

	private String nome;
	private int idade;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public int getIdade() {
		return idade;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

}

3 Respostas

P

bom dia!

analisando o seu código não vejo não de errado. será que vc recebendo mensagens TextMessage no seu listener?

R

pior que tb nao achei nada de errado … !!

R

Estava debugando aqui e por algum demonio ou espirito ruim, ele estava recebendo o textMessage ainda … nao sei porque … fechei e abri o maldito eclipse … funcionou sem erros agora

Criado 2 de março de 2009
Ultima resposta 2 de mar. de 2009
Respostas 3
Participantes 2