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

Spring Boot 3中嵌入ActiveMQ Artemis并启用OpenWire协议问题

解决Spring Boot 3嵌入式ActiveMQ Artemis启用OpenWire协议的问题

问题根源

Spring Boot 3基于Jakarta EE 9+规范,依赖jakarta.jms相关API,而你添加的artemis-openwire-protocol是基于旧的javax.jms的版本,两者API包路径不兼容,导致启动时出现javax.jms.InvalidClientIDException类找不到的错误。独立版ActiveMQ Artemis 2.31.2默认使用Jakarta版本的协议组件,所以能正常运行。

解决方案

替换OpenWire协议依赖为Jakarta兼容版本,并利用Spring Boot BOM自动管理版本,避免冲突:

  1. 移除原有错误的OpenWire依赖:
<!-- 移除这个依赖 -->
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>artemis-openwire-protocol</artifactId>
    <version>2.31.2</version>
</dependency>
  1. 添加Jakarta版本的OpenWire协议依赖:
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>artemis-openwire-protocol-jakarta</artifactId>
</dependency>

无需手动指定版本,Spring Boot 3.2.1的BOM已经管理了Artemis 2.31.2版本,会自动匹配正确的依赖版本。

  1. 确认Acceptor配置正确
    在application.properties或application.yml中确保 acceptor 配置包含OPENWIRE:
spring.artemis.mode=embedded
spring.artemis.acceptor=tcp://0.0.0.0:61616?protocols=CORE,OPENWIRE

验证

启动应用后,日志不再出现AMQ222203警告,OpenWire客户端即可正常连接嵌入式Broker。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:33:19