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