我应该将消息发送到地址为 10.7.1.10、端口 61616 的名为“IngestGenericJSONQueue”的 ActiveMQ 队列。我可以创建一个 ActiveMQConnectionFactory 对象,但是如何查找现有队列呢?到目前为止,我只找到了 session.createQueue() 函数,但我不确定它是否用于创建与现有队列的连接,或者仅用于创建一个全新的队列。如何按名称连接到现有的 activemq 队列?
ConnectionFactory cFactory = new ActiveMQConnectionFactory("tcp://10.7.1.10:61616");
Connection connection = cFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination queue = session.createQueue("IngestGenericJSONQueue");
System.out.println("queue connected");
MessageProducer producer = session.createProducer(queue);
TextMessage m = session.createTextMessage();
m.setText(jsonStix.toString());
producer.send(m);
System.out.println("done");
最佳答案
ActiveMQ 根据需要创建队列和主题,因此如果在创建生产者时不存在同名的队列,则会创建一个新队列。如果队列已经存在,那么生产者将发送到该队列。
您可以使用 JMX 或 Web 控制台等管理工具来探索正在运行的代理,以查看已经存在的队列。
关于jms - ActiveMQ 连接到某个地址/端口处的现有队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329816/