jmeter java.io.IOException:无法识别传输方案:[amqps]

fcipmucu  于 5个月前  发布在  Java
关注(0)|答案(2)|浏览(73)

我尝试使用amqps协议通过JMeter的JMS发布者采样器向Amazon MQ(ActiveMQ引擎)发布消息,但收到响应消息:

javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: Transport scheme not recognised: [amqps].

字符串
如果我使用另一个OpenWire协议,如ssltcp,我可以成功地发布消息。我还验证了我可以从我的机器连接到代理。
我在classpath中添加了Apache Qpid jar和Qpid JMS。
有没有一种方法可以使用amqps协议从JMeter发布消息?
以下是详细信息:

  • 初始上下文工厂:org.apache.activemq.jndi.ActiveMQInitialContextFactory
  • 提供URL:amqps://broker-url:5671
  • 连接工厂:ConnectionFactory
  • 目的地:dynamicTopics/topicname
  • 使用身份验证已选中。

我正在使用Qpid JMS 2.5、Geronimo和ActiveMQ客户端5.17.6 jar。

clj7thdc

clj7thdc1#

如果您不提供JMS发布者采样器配置详细信息和jmeter.log文件(最好为JMS组件和您正在使用的库提供JMeter debug logging enabled),则无法全面回答您的问题。
很可能你的连接工厂是错误的,你需要使用org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory而不是你现在使用的。

ymdaylpp

ymdaylpp2#

问题是,您正在使用OpenWire JMS客户端的JNDI初始上下文工厂(即org.apache.activemq.jndi.ActiveMQInitialContextFactory),但您正在使用仅由Qpid JMS客户端支持的URL方案(即amqps)。这解释了为什么如果您使用OpenWire JMS客户端支持的URL方案(即tcpssl),它就可以工作。
因为你想使用amqps,那么你需要使用Qpid JMS中的初始上下文工厂:

org.apache.qpid.jms.jndi.JmsInitialContextFactory

字符串
这在Qpid JMS 2.5 configuration documentation中描述。

相关问题