O Dia em que Eu Mordi Jesus Cristo

Propaganda
Criaremos um novo projeto Java – Aplicativo Java chamando-o de Emissores. Devemos incluir as seguintes
bibliotecas:
 gf-client.jar - C:\Program Files\glassfish-3.1.1\glassfish\lib
 jms.jar - C:\Program Files\glassfish-3.1.1\mq\lib
ProdutorParaFila.java
package emissores;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.swing.JOptionPane;
public class ProdutorParaFila {
public static void main(String[] args) throws NamingException {
InitialContext ic = new InitialContext();
try {
ConnectionFactory fabrica = (ConnectionFactory) ic
.lookup("fabrica");
Queue fila = (Queue) ic.lookup("fila");
Connection connection = fabrica.createConnection();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
MessageProducer produtor = session.createProducer(fila);
TextMessage message = session.createTextMessage();
message.setText(JOptionPane.showInputDialog("Digite a mensagem!"));
produtor.send(message);
produtor.close();
session.close();
connection.close();
JOptionPane
.showMessageDialog(null, "Mensagem enviada com sucesso!");
} catch (JMSException ex) {
JOptionPane.showMessageDialog(null, "Ocorreu uma JMSException "
+ ex.getMessage());
}
System.exit(0);
}
}
O exemplo apresentado acima usa arquitetura JEE, caso estivéssemos em um projeto JEE poderíamos
utilizar injeção de dependência, nesse caso nossa classe apresentada acima ficaria da seguinte forma:
ProdutorParaFilaJEE.java
package emissores;
import javax.annotation.Resource;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.NamingException;
import javax.swing.JOptionPane;
public class ProdutorParaFilaJEE {
@Resource(mappedName = "fabrica")
private static ConnectionFactory fabrica;
@Resource(mappedName="fila")
private static Queue fila;
public static void main(String[] args) throws NamingException {
try {
Connection connection = fabrica.createConnection();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
MessageProducer produtor = session.createProducer(fila);
TextMessage message = session.createTextMessage();
message.setText(JOptionPane.showInputDialog("Digite a mensagem!"));
produtor.send(message);
produtor.close();
session.close();
connection.close();
JOptionPane
.showMessageDialog(null, "Mensagem enviada com sucesso!");
} catch (JMSException ex) {
JOptionPane.showMessageDialog(null, "Ocorreu uma JMSException "
+ ex.getMessage());
}
System.exit(0);
}
}
Agora criaremos agora o nosso consumidor para a fila. Crie Criaremos um novo projeto Java – Aplicativo
Java chamando-o de Consumidores, assim como feito anteriormente. Adicione as mesmas bibliotecas
adicionas ao projeto como antes.
Criamos projetos diferentes para manter a Idea que o produtor e consumidor geralmente são aplicações
diferentes sendo executas em locais diferentes.
Agora temos nossa classe ConsumidorDaFila.java
package consumidores;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.swing.JOptionPane;
public class ConsumidorDaFila {
public static void main(String[] args) throws NamingException {
InitialContext ic = new InitialContext();
try {
ConnectionFactory fabrica = (ConnectionFactory) ic
.lookup("fabrica");
Queue fila = (Queue) ic.lookup("fila");
Connection connection = fabrica.createConnection();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
MessageConsumer consumidor = session.createConsumer(fila);
connection.start();
TextMessage message = (TextMessage) consumidor.receive();
JOptionPane.showMessageDialog(null, message.getText());
consumidor.close();
session.close();
connection.close();
} catch (JMSException ex) {
JOptionPane.showMessageDialog(null, "Ocorreu uma JMSException "
+ ex.getMessage());
}
System.exit(0);
}
}
Download