You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActiveMQ Artemis Docker部署与Spring Boot连接认证问题求助

解决ActiveMQ Artemis Docker容器认证及SSL相关问题

核心问题分析

你遇到的错误根源有两个:

  1. Docker容器启动时未显式创建admin用户,导致Broker中不存在该用户,触发User does not exist: admin错误
  2. 自定义Spring Boot配置存在冗余,可能导致凭证未正确生效

步骤1:重新启动Docker容器,创建指定用户

停止现有容器,用以下命令启动,明确指定用户名和密码(替换your_secure_password为实际密码):

docker run -d \
  --name artemis-broker \
  -p 61616:61616 \  # 普通JMS连接端口
  -p 8161:8161 \    # Web控制台端口
  -e ARTEMIS_USERNAME=admin \
  -e ARTEMIS_PASSWORD=your_secure_password \
  apache/activemq-artemis:latest

该命令会自动在Broker的用户配置文件中添加admin账号,并赋予管理员权限。


步骤2:简化Spring Boot配置,避免冲突

Spring Boot已内置Artemis自动配置,无需手动创建ConnectionFactory和JmsTemplateBean,删除自定义的MessagingConfig类,仅保留application.properties配置:

# Artemis连接配置
spring.artemis.broker-url=tcp://localhost:61616
spring.artemis.user=admin
spring.artemis.password=your_secure_password

# 可选:设置默认发送队列
spring.jms.template.default-destination=artemis1

若需手动注册队列Bean,可单独创建轻量配置类:

@Configuration
public class QueueConfig {
    @Bean
    public ActiveMQQueue sampleQueue() {
        return new org.apache.activemq.artemis.jms.client.ActiveMQQueue("artemis1");
    }
}

步骤3:验证控制台登录

访问http://localhost:8161,使用设置的admin/your_secure_password登录,即可正常进入Web控制台。


步骤4:测试消息发送

创建消息发送类验证连接:

@Service
public class MessageSender {
    private final JmsTemplate jmsTemplate;

    public MessageSender(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }

    public void sendMessage(String content) {
        jmsTemplate.convertAndSend("artemis1", content);
    }
}

调用该方法发送消息,即可正常完成队列交互。


额外处理:彻底关闭SSL强制认证(若仍有SSL错误)

如果仍出现SSL相关错误,可通过自定义broker.xml关闭SSL要求:

  1. 从运行中的容器复制默认配置:
docker cp artemis-broker:/var/lib/artemis/etc/broker.xml ./broker.xml
  1. 编辑broker.xml,确保TCP acceptor的sslEnabled=false(默认已关闭,若被修改则修正):
<acceptor name="artemis">tcp://0.0.0.0:61616?sslEnabled=false;tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true</acceptor>
  1. 挂载自定义配置重启容器:
docker run -d \
  --name artemis-broker \
  -p 61616:61616 \
  -p 8161:8161 \
  -e ARTEMIS_USERNAME=admin \
  -e ARTEMIS_PASSWORD=your_secure_password \
  -v $(pwd)/broker.xml:/var/lib/artemis/etc/broker.xml \
  apache/activemq-artemis:latest

内容的提问来源于stack exchange,提问作者Tara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:43:21