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