要在Artemis MQ发送者中获得接收确认,可以使用JMS API中提供的方法。以下是一个示例代码,演示了如何在发送消息后获得接收确认。
import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
import javax.jms.*;
public class Sender {
public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = null;
Session session = null;
MessageProducer producer = null;
try {
// 创建连接和会话
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建目标
Queue queue = session.createQueue("myqueue");
// 创建消息发送者
producer = session.createProducer(queue);
// 创建消息
TextMessage message = session.createTextMessage("Hello, Artemis!");
// 发送消息
producer.send(message);
// 设置一个消息监听器,用于接收确认
MessageConsumer consumer = session.createConsumer(queue);
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
try {
System.out.println("Received confirmation message: " + ((TextMessage) message).getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
// 启动连接,开始接收确认消息
connection.start();
// 等待一段时间,以便接收确认消息
Thread.sleep(5000);
} catch (JMSException | InterruptedException e) {
e.printStackTrace();
} finally {
try {
// 关闭连接和会话
if (producer != null) {
producer.close();
}
if (session != null) {
session.close();
}
if (connection != null) {
connection.close();
}
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
在上述代码中,我们创建了一个消息发送者,并发送了一条消息。然后,我们创建了一个消息监听器,用于接收接收确认消息。启动连接后,我们等待一段时间,以便接收到接收确认消息。当接收到确认消息时,我们将在控制台打印出消息的内容。
请注意,此代码示例假定您已经在本地安装了Artemis MQ,并且该服务器正在运行在默认端口61616上。您需要根据您的实际设置更改连接字符串。