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

引入camel-jms-starter:3.20.2出现两个Geronimo JMS规范版本,是Bug还是设计如此?

关于camel-jms-starter引入多版本Geronimo JMS规范的问题解答

这是设计考量而非错误

Camel 3.x版本的camel-jms模块依赖geronimo-jms_2.0_spec是为了支持JMS 2.0的新特性(比如共享消费者、延迟消息等);而camel-jms-starter额外引入geronimo-jms_1.1_spec,是为了适配Spring Boot生态中仍在使用的JMS 1.1客户端组件(比如ActiveMQ 5.x系列),属于兼容老环境的设计策略,并非bug。

可以通过排除不需要的版本解决

完全可以根据你实际使用的JMS服务端/客户端,排除其中一个版本:

  • 若使用支持JMS 2.0的组件(如ActiveMQ Artemis、IBM MQ 9+等):排除JMS 1.1规范包
  • 若使用仅支持JMS 1.1的老组件:排除JMS 2.0的alpha版本

Maven排除示例

排除JMS 1.1规范包

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-jms-starter</artifactId>
    <version>3.20.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jms_1.1_spec</artifactId>
        </exclusion>
    </exclusions>
</dependency>

排除JMS 2.0规范包

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-jms-starter</artifactId>
    <version>3.20.2</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jms_2.0_spec</artifactId>
        </exclusion>
    </exclusions>
</dependency>

注意事项

排除后需确保你的JMS客户端与保留的规范版本完全兼容,避免出现类找不到、方法不匹配等运行时错误。

内容的提问来源于stack exchange,提问作者Søren

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:57:50