Could not connect to broker URL: tcp://localhost:61616. Reason: java.net.ConnectException: Connection refused: connect
时间: 2023-12-07 08:39:48 浏览: 42
这个错误提示表明你的代码无法连接到本地的61616端口,原因是连接被拒绝。这可能是因为ActiveMQ服务没有启动或者端口号不正确。你可以尝试以下方法解决这个问题:
1. 确认ActiveMQ服务已经启动并且监听了61616端口。
2. 检查你的代码中连接的URL是否正确,确保端口号和IP地址都正确。
3. 确认防火墙没有阻止你的代码连接到61616端口。
4. 如果你的代码运行在Docker容器中,你需要将ActiveMQ服务的端口映射到Docker容器的端口上。
以下是一个Java连接ActiveMQ的例子,你可以参考一下:
```java
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
public class ActiveMQExample {
public static void main(String[] args) throws JMSException {
// 创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// 创建连接
Connection connection = connectionFactory.createConnection();
// 启动连接
connection.start();
// 创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建队列
Destination destination = session.createQueue("test");
// 创建生产者
MessageProducer producer = session.createProducer(destination);
// 创建消息
TextMessage message = session.createTextMessage("Hello, ActiveMQ!");
// 发送消息
producer.send(message);
// 关闭连接
connection.close();
}
}
```