我尝试使用amqps
协议通过JMeter的JMS发布者采样器向Amazon MQ(ActiveMQ引擎)发布消息,但收到响应消息:
javax.jms.JMSException: Could not create Transport. Reason: java.io.IOException: Transport scheme not recognised: [amqps].
字符串
如果我使用另一个OpenWire协议,如ssl
或tcp
,我可以成功地发布消息。我还验证了我可以从我的机器连接到代理。
我在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。
2条答案
按热度按时间clj7thdc1#
如果您不提供JMS发布者采样器配置详细信息和jmeter.log文件(最好为JMS组件和您正在使用的库提供JMeter debug logging enabled),则无法全面回答您的问题。
很可能你的连接工厂是错误的,你需要使用
org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory
而不是你现在使用的。ymdaylpp2#
问题是,您正在使用OpenWire JMS客户端的JNDI初始上下文工厂(即
org.apache.activemq.jndi.ActiveMQInitialContextFactory
),但您正在使用仅由Qpid JMS客户端支持的URL方案(即amqps
)。这解释了为什么如果您使用OpenWire JMS客户端支持的URL方案(即tcp
或ssl
),它就可以工作。因为你想使用
amqps
,那么你需要使用Qpid JMS中的初始上下文工厂:字符串
这在Qpid JMS 2.5 configuration documentation中描述。