我有一个带有协议AMQP的ActiveMQ AWS服务。AWS返回给我:
failover:(amqp+ssl://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671,amqp+ssl://b-ca138bd4-e6c4-4596-8329-f11bebf40111-2.mq.us-east-1.amazonaws.com:5671)我正在尝试使用Spring实现与那个端点的连接,但是我有很多问题。我尝试过很多种方法,但是我无法使用Spring连接到ActiveMQ。
我试过:
创建许多配置Beans,如:
@Bean
fun connectionFactory(): ConnectionFactory {
val activeMQConnectionFactory = ActiveMQConnectionFactory()
activeMQConnectionFactory.brokerURL = "amqp+ssl://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671"
activeMQConnectionFactory.trustedPackages = listOf("com.rappi.scaffolding")
return activeMQConnectionFactory
}并使用许多依赖项,如:
implementation("org.apache.activemq:activemq-spring:5.17.0")
implementation("org.springframework:spring-jms")和
implementation("org.springframework.boot:spring-boot-starter-artemis")但不可能为我建立起联系。此时此刻,我看到了这个错误:
Reason: java.io.IOException: Transport scheme NOT recognized: [amqp+ssl]在Java或Kotlin或指南中有一些使用AMQP协议将我与AWS连接的示例?我在谷歌里没有找到任何东西。
我读过使用QPid的那篇文章,但它对我不管用。
我已经找到了许多使用兔子的例子,但没有使用Apache ActiveMQ协议amqp+ssl。
最后,它使用Bean工作:
@Bean
fun connectionFactory(): ConnectionFactory {
return JmsConnectionFactory(
"failover:(amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671,amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-2.mq.us-east-1.amazonaws.com:5671)").apply {
this.username = user
this.password = passwordAQ
}发布于 2022-05-10 18:02:03
您的代码和配置有很多错误。
First,您为客户端使用的URL是不正确的。amqp+ssl方案对任何客户端无效。这是用于在ActiveMQ代理配置中定义连接器的方案。
第二个,您的依赖项是错误的。从客户的角度来看,你只需要:
implementation("org.apache.qpid:qpid-jms-client:1.6.0")当然,如果您使用Spring,您将需要所有相关的Spring依赖项,但就客户端本身而言,这就是您所需要的。
第三代,您的代码是错误的。你应该使用这样的东西:
@Bean
fun connectionFactory(): ConnectionFactory {
return new org.apache.qpid.jms.JmsConnectionFactory("failover:(amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-1.mq.us-east-1.amazonaws.com:5671,amqps://b-ca138bd4-e6c4-4596-8329-f11bebf40111-2.mq.us-east-1.amazonaws.com:5671)");
}https://stackoverflow.com/questions/72190446
复制相似问题