Olá, estou com problemas em fazer funcionar um exemplo de JMS com Queue e consequentemente com Topic no JBoss 5.1. Tenho o seguinte código em um arquivo chamado queues-service.xml na pasta de deploy do server.
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jboss.jms.server.destination.QueueService"
name="jboss.soa.esb.destination:service=Queue,name=filateste"
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
</mbean>
</server>
Uma classe com o seguinte código para registrar o MessageListener
public class RegistraTratadorNaFila {
public static void main(String[] args) throws NamingException, JMSException {
InitialContext ic = new InitialContext();
QueueConnectionFactory qcf = (QueueConnectionFactory) ic.lookup("ConnectionFactory");
QueueConnection qc = qcf.createQueueConnection();
QueueSession qs = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue q = (Queue) ic.lookup("queue/filateste");
QueueReceiver qr = qs.createReceiver(q);
qr.setMessageListener(new TratadorDeMensagem());
qc.start();
}
}
Depois uma classe cliente para enviar mensagens para a fila
public class EnviaMensagemParaFila {
public static void main(String[] args) throws NamingException, JMSException {
InitialContext ic = new InitialContext();
QueueConnectionFactory qcf = (QueueConnectionFactory)
ic.lookup("ConnectionFactory");
QueueConnection qc = qcf.createQueueConnection();
QueueSession qs = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
TextMessage tm = qs.createTextMessage();
tm.setText("Mensagem de texto para uma Queue");
Queue q = (Queue) ic.lookup("queue/filateste");
QueueSender queueSender = qs.createSender(q);
queueSender.send(tm);
}
}
Ao executar a primeira classe, no exemplo que tenho, diz que ao executar o método start() a classe ficaria em execução, mas ela termina. Depois ao executar o cliente que envia mensagem, o seguinte erro fica aparecendo no console do JBoss no Eclipse
21:52:32,968 WARN [SimpleConnectionManager] A problem has been detected with the connection to remote client 5c4o11u-mromt9-g88022jn-1-g88024k3-4, jmsClientID=b-s152088g-1-nj22088g-9tmorm-u11o4c5. It is possible the client has exited without closing its connection(s) or the network has failed. All associated connection resources will be cleaned up.
Grato