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

使用ActiveMQ Classic Jakarta版本,咨询是否计划推出activemq-http-jakarta jar

ActiveMQ Classic 5.18.1 Jakarta环境下HTTP/HTTPS传输问题解答

问题背景

使用ActiveMQ Classic 5.18.1 + Spring 6(Jakarta命名空间),通过activemq-client-jakarta实现TCP连接正常,但需要使用HTTP/HTTPS协议时,发现没有对应的activemq-http-jakarta jar包,尝试连接时出现以下报错:

Caused by: jakarta.jms.JMSException: Transport scheme NOT recognized: [https]
    at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:91)
    at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1483)
    at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1548)
    at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:370)
    at org.springframework.jms.core.JmsTemplate.executeLocal(JmsTemplate.java:950)
    ... 170 common frames omitted
Caused by: java.io.IOException: Transport scheme NOT recognized: [https]
    at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:30)
    at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:185)
    at org.apache.activemq.transport.TransportFactory.compositeConnect(TransportFactory.java:90)
    at org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:1020)
    at org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:151)
    at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
    at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    ... 1 common frames omitted
Caused by: java.io.IOException: Could not find factory class for resource: META-INF/services/org/apache/activemq/transport/https
    at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.loadProperties(FactoryFinder.java:104)
    at org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.create(FactoryFinder.java:61)
    at org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:154)
    at org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:182)
    ... 8 common frames omitted

核心问题解答

1. 是否有计划推出activemq-http-jakarta jar包?

截至ActiveMQ Classic 5.18.1版本,官方仅完成了核心客户端(activemq-client-jakarta)的Jakarta命名空间适配,尚未推出专门的activemq-http-jakarta包。若需要该特性,可在ActiveMQ官方JIRA提交需求工单,或持续关注后续版本的更新日志。

2. 当前HTTPS连接报错的原因

报错本质是缺少Jakarta版本的HTTP传输工厂实现:传统的activemq-http包依赖javax命名空间API,无法与Spring 6+的Jakarta环境兼容,导致系统无法加载https对应的传输工厂类。

可行解决方案

  • 方案1:迁移到ActiveMQ Artemis
    Artemis是官方推荐的下一代消息中间件,原生支持Jakarta命名空间,内置HTTP/HTTPS传输支持,无需额外适配,完全兼容Spring 6+生态。
  • 方案2:自定义适配HTTP传输包
    基于传统activemq-http包,将其中的javax依赖替换为Jakarta对应API(如javax.servlet → jakarta.servlet),重新编译生成自定义的Jakarta版本包。但该方式需自行维护包的兼容性,存在后续版本迭代风险。
  • 方案3:改用SSL加密的TCP传输
    若业务场景允许,使用ssl://协议替代HTTPS,activemq-client-jakarta原生支持该协议,可满足安全传输需求,无需依赖HTTP传输组件。

内容的提问来源于stack exchange,提问作者Mançaux Pierre-Alexandre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:23:14