问题描述
我必须使用azurite作为代理,不幸的是我还不能使用azure服务总线。所以我被迫使用
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-servicebus-jms-spring-boot-starter</artifactId>
<version>2.3.3</version>
</dependency>
但是具有用于JmsListener的azurite容器。
@JmsListener(destination = QUEUE_NAME,containerFactory = "jmsListenerContainerFactory")
public void receiveMessage(String message) {
logger.info("Received message: {}",message);
}
在工厂内部,深深嵌套在stackTrace中的是ConnectionStringBuilder,它附加了“ amqps://”; 并删除端口号。问题是我不知道如何从http和amqps更改azurite中的通讯协议,如果不可能的话。如何覆盖使用http而不是amqps的类?
解决方法
Azurite用于Azure队列存储,而不用于Azure Service Bus。 Azure队列存储仅用于HTTP / S,并且从未设计过该工具与基于AMQP / S的服务一起使用。