package org.javaee7.jms.xa;
import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.inject.Inject;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSDestinationDefinition;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
@JMSDestinationDefinition(
name = Mailman.CLASSIC_QUEUE,
resourceAdapter = "jmsra",
interfaceName = "javax.jms.Queue",
destinationName = "classicQueue",
description = "My Sync Queue")
@Singleton
public class Mailman {
public static final String CLASSIC_QUEUE = "java:jboss/jms/classicQueue";
@SuppressWarnings("CdiInjectionPointsInspection")
@Inject
ConnectionFactory connectionFactory;
@Resource(mappedName = CLASSIC_QUEUE)
Queue demoQueue;
public void sendMessage(String payload)
{
Connection connection = null;
try {
connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.SESSION_TRANSACTED);
MessageProducer messageProducer = session.createProducer(demoQueue);
TextMessage textMessage = session.createTextMessage(payload);
messageProducer.send(textMessage);
} catch (JMSException ex) {
ex.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (JMSException ex) {
ex.printStackTrace();
}
}
}
}
}