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

连接ActiveMQ Broker时遭遇Schema https not found异常求助

解决方案:Schema https not found 异常处理

问题原因

ActiveMQConnectionFactory 不支持 https 作为连接协议前缀——ActiveMQ Artemis的JMS客户端使用原生消息协议(如tcp/ssl),而非HTTP/HTTPS协议,因此无法识别https schema,触发空指针异常。

修复步骤

1. 修改连接URL的协议前缀

将原URL的https://替换为正确的协议:

  • 无加密连接:使用tcp://,示例:tcp://XXXXXX.com:61616(默认非加密端口为61616)
  • SSL加密连接:使用ssl://,示例:ssl://XXXXXX.com:61617(默认SSL端口为61617)

2. 配置SSL参数(若使用加密连接)

如果需要SSL加密通信,需为连接工厂添加SSL相关配置:

import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;

// 替换为修改后的URL,如ssl://XXXXXX.com:61617
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url, username, password);
// 启用SSL
connectionFactory.setSslEnabled(true);
// 设置信任库路径及密码(用于验证Broker证书)
connectionFactory.setTrustStorePath("/path/to/your/truststore.jks");
connectionFactory.setTrustStorePassword("your-truststore-password");
// 若Broker要求客户端证书认证,额外配置密钥库
// connectionFactory.setKeyStorePath("/path/to/your/keystore.jks");
// connectionFactory.setKeyStorePassword("your-keystore-password");

try (Connection connection = connectionFactory.createConnection()) {
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Destination queue = session.createQueue(queueName);
    
    TextMessage message = session.createTextMessage(jsonData);
    message.setStringProperty("Content-Type", "application/json"); 

    MessageProducer producer = session.createProducer(queue);
    producer.send(queue, message);
} catch(JMSException e) {
    e.printStackTrace();
}

3. 验证Broker端配置

确保ActiveMQ Artemis Broker已正确配置对应端口监听:

  • 非加密连接:确认tcp连接器在broker.xml中启用,端口与URL一致
  • SSL连接:确认ssl连接器已配置证书、密钥库等参数,端口匹配

内容的提问来源于stack exchange,提问作者A V Mounika

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:15:15