ActiveMQ连接不起作用

时间:2018-07-12 12:00:39

标签: jms activemq

我使用ActiveMQConnectionFactory创建了ActiveMQ连接,

connectionFactory = new ActiveMQConnectionFactory("nio://0.0.0.0:" + activeMqPort);
connection = connectionFactory.createConnection();
connection.start();

稍后我正在使用连接来获取会话:

Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);

从Connection创建会话时,它将失败并显示NullPointerException(连接为空),

PS:连接之前曾在工作,突然为空。 任何人都可以向我解释一下这种情况何时发生以及如何解决?

1 个答案:

答案 0 :(得分:0)

您的URI对于客户端连接不正确。 nio://仅与服务器端相关,并且服务器端使用“ 0.0.0.0”来指示服务器在所有ip接口上进行侦听。

尝试使用此方法连接到与此客户端代码在同一台计算机上运行的ActiveMQ服务器:

connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:" + activeMqPort);
connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);

奖励建议:

  1. 外部化整个客户端URL,而不仅仅是端口。这将允许您指定多个服务器进行故障转移,重新连接超时参数以及其他需要更改代码的其他客户端连接设置。

  2. 除非您真的知道它的作用,否则请不要使用CLIENT_ACKNOWLEDGE。如果您不清楚它的工作原理,那么它会带来很多痛苦。如果要按消息进行确认,请使用ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE。对于非事务处理,请使用Session.AUTO_ACKNOWLEDGE。