Prezados,
Eu andei lendo alguns tutoriais na internet…e no final montei as seguintes 2 classes e 1 arquivo de configuração de fila na pasta Deploy do Jboss:
Tenho duas dúvidas.
1- O arquivo XML está correto?
2- Como diabos consigo testar isso? As classes precisam estar rodando em um servidor Web…E em um server web não é possível executar o Main. Correto?
Valew!!!
Para enviar uma mensagem:
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class EnviaFila {
public static void main(String[] args)
throws NamingException, JMSException
{
// obtém referências ao QueueConnectionFactory e à fila via JNDI
Context jndiContext = new InitialContext();
QueueConnectionFactory connectionFactory =
(QueueConnectionFactory)jndiContext.lookup("ConnectionFactory");
Queue queue = (Queue)jndiContext.lookup("queue/minhaFila");
// conecta à fila e inicia uma sessão
QueueConnection connection =
connectionFactory.createQueueConnection();
QueueSession session = connection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
// envia uma única mensagem de texto
QueueSender sender = session.createSender(queue);
TextMessage message = session.createTextMessage();
message.setText("Oi via JMS");
sender.send(message);
// libera recursos
sender.close();
session.close();
connection.close();
}
}
Para ler a mensagem e exibir no console pra me deixar feliz:
import javax.jms.*;
import javax.naming.*;
public class RecebeFila {
public static void main(String[] args)
throws NamingException, JMSException
{
// obtém referências ao QueueConnectionFactory e à fila via JNDI
Context jndiContext = new InitialContext();
QueueConnectionFactory connectionFactory =
(QueueConnectionFactory) jndiContext.lookup("ConnectionFactory");
Queue queue = (Queue) jndiContext.lookup("queue/minhaFila");
// conecta à fila e inicia uma sessão
QueueConnection connection =
connectionFactory.createQueueConnection();
QueueSession session = connection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
// recebe mensagens
QueueReceiver receiver = session.createReceiver(queue);
connection.start();
while (true) {
TextMessage message = (TextMessage) receiver.receive(1);
if (message != null)
System.out.println("Recebi: " + message.getText());
}
// libera recursos no encerramento da JVM
}
}
minhaFila-Service.xml (Na pasta deploy do Jboss)
name="jboss.mq.destination:service=Queue,name=minhaFila">
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
-1