第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Spring boot 2 通過 Apache Camel 連接到 rabbitmq

Spring boot 2 通過 Apache Camel 連接到 rabbitmq

富國(guó)滬深 2022-07-20 17:05:02
我在 Spring Boot 2 上通過 Apache Camel 連接到 rabbitmq 時(shí)遇到問題。我做了以下步驟:我的依賴:implementation "org.apache.camel:camel-spring-boot-starter:${camelVersion}"implementation "org.apache.camel:camel-jackson-starter:${camelVersion}"implementation "org.apache.camel:camel-core:${camelVersion}"implementation "org.apache.camel:camel-rabbitmq-starter:${camelVersion}"implementation "org.springframework.boot:spring-boot-starter-amqp"應(yīng)用程序.yamlspring:      rabbitmq:      dynamic: true      host: 192.168.1.1      port: 5672      username: X      password: Y我有以下路線:@Componentpublic class BasicRoute extends RouteBuilder {@Overridepublic void configure() throws Exception {    from("direct:loggerQueue")            .id("loggerQueue")            .to("rabbitmq://TEST-QUEUE.exchange?queue=TEST-QUEUE.queue&autoDelete=false&connectionFactory=#rabbitConnectionFactory")            .end();}}Finnaly我仍然有以下問題:2019-03-06 12:46:05.766 WARN 19464 --- [restartedMain] oaccrabbitmq.RabbitMQProducer:無法創(chuàng)建連接。發(fā)布消息時(shí)它將嘗試再次連接。java.net.ConnectException:連接被拒絕:連接連接似乎沒問題,我測(cè)試了它。rabbitConnectionFactory 出了點(diǎn)問題。我不知道我有什么不好。
查看完整描述

1 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

問題似乎是 RabbitMQComponent 期望找到 com.rabbitmq.client.ConnectionFactory 類型的連接工廠。


但是,springboot 自動(dòng)配置正在創(chuàng)建一個(gè) org.springframework.amqp.rabbit.connection.CachingConnectionFactory 類型的連接工廠。


因此,每當(dāng) RabbitMQComponent 試圖找到適當(dāng)?shù)倪B接工廠時(shí),因?yàn)樗趯ふ姨囟ǖ念愋?,并且因?yàn)樗鼪]有子類化 rabbitmq ConnectionFactory,它返回一個(gè)空值,并且無法使用指定的適當(dāng)主機(jī)名和配置參數(shù)在您的 application.yml 中。


You should also see the following in your log if you have debug level set:

2019-12-15 17:58:53.631 DEBUG 48710 --- [           main] o.a.c.c.rabbitmq.RabbitMQComponent       : Creating RabbitMQEndpoint with host null:0 and exchangeName: asterix

2019-12-15 17:58:55.927 DEBUG 48710 --- [           main] o.a.c.c.rabbitmq.RabbitMQComponent       : Creating RabbitMQEndpoint with host null:0 and exchangeName: asterix-sink

編輯: CachingConnectionFactory 配置有所需的 Rabbit 連接工廠作為自動(dòng)配置的一部分。但是,您需要提供指向正確工廠的鏈接。


因此,您需要添加一個(gè)@Bean 來消除歧義。


@Configuration

@RequiredArgsConstructor

public class CamelConfig {


  private final CachingConnectionFactory rabbitConnectionFactory;


  @Bean

  com.rabbitmq.client.ConnectionFactory rabbitSourceConnectionFactory() {

    return rabbitConnectionFactory.getRabbitConnectionFactory();

  }

}

并在您的端點(diǎn)配置中:


rabbitmq:asterix?connectionFactory=#rabbitSourceConnectionFactory

請(qǐng)注意,# 是可選的,因?yàn)楫?dāng)它試圖查找 rabbit 連接工廠 bean 時(shí),它會(huì)在代碼中被刪除。


在您的 application.yml 中,配置連接參數(shù)(該 url 不再包含在端點(diǎn) URI 中)。


spring:

  rabbitmq:

    host: localhost

    port: 5672

    username: guest

    password: guest


查看完整回答
反對(duì) 回復(fù) 2022-07-20
  • 1 回答
  • 0 關(guān)注
  • 314 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)