@Stateless public class QueueConfigBean { @Resource(lookup = "jms/ConnectionFactory") private ConnectionFactory connectionFactory; @Resource(lookup = "jms/Queue") private Queue queue; @PostConstruct public void initialize() { try { Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); session.createProducer(queue); connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } @Stateless public class MessageProducerBean { @Resource(lookup = "jms/ConnectionFactory") private ConnectionFactory connectionFactory; @Resource(lookup = "jms/Queue") private Queue queue; public void sendMessage(String message) { try { Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(queue); TextMessage textMessage = session.createTextMessage(message); producer.send(textMessage); connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } @Component public class MessageConsumerBean { @PreDestroy public void destroy() { try { connectionFactory.stop(); } catch (JMSException e) { e.printStackTrace(); } } @JmsListener(destination = "jms/Queue") public void onMessage(Message message) { if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; try { System.out.println("Received message: " + textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } } } <resource-ref> <res-ref-name>jms/ConnectionFactory</res-ref-name> <res-type>javax.jms.ConnectionFactory</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <res-ref-name>jms/Queue</res-ref-name> <res-type>javax.jms.Queue</res-type> <res-auth>Container</res-auth> </resource-ref>


上一篇:
下一篇:
切换中文