2015-11-23 35 views
1

我有這樣
enter image description here春天開機無法連接到RabbitMQ的

一個RabbitMQ的服務器當我嘗試通過Spring引導AMQP連接到這臺服務器,我看到com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.

我CONFIGS是這一個

# Message 
spring.activemq.broker-url=tcp://127.0.0.1:5672 
spring.activemq.user=test 
spring.activemq.password=test 

是,用戶測試可以訪問虛擬主機/是的,我可以在RabbitMQ的GUI

與測試/測試登錄

編輯

望着RabbitMQ的日誌,我看到這個

{handshake_error,starting,0, 
      {amqp_error,access_refused, 
         "PLAIN login refused: user 'guest' - invalid credentials", 
         'connection.start_ok'}} 

就像是春天無視我的CONFIGS並試圖連接與guest

+1

在Spring配置你創建Bean的'activemq.user = test'但你連接到RabbitMQ的,不activemq和rabbitmq日誌顯示你連接在'客人'用戶名 – pinepain

回答

3

彈簧特性包括RabbitMQ的具體設置。嘗試用下面的替換你的ActiveMQ配置。

例子:

spring.rabbitmq.host = 127.0.0.1 
spring.rabbitmq.port = 5672 
spring.rabbitmq.username = guest 
spring.rabbitmq.password = guest 
0

使用默認設置了springboot是好的,但如果我們想添加外部兔例如彈簧容器,那麼我們應該按照如下所示

appl ication.yml

rabbitmq: 
    host: 'hostname' 
    vhost: 'vhostname' 
    user: 'userName' 
    password: 'passwd' 
    port: 5672 

配置類

 @Configuration 
    public class RabbitConfig { 

     @Value("${rabbitmq.host}") 
     private String host; 
     @Value("${rabbitmq.vhost}") 
     private String vhost; 
     @Value("${rabbitmq.user}") 
     private String user; 
     @Value("${rabbitmq.password}") 
     private String password; 
     @Value("${rabbitmq.port}") 
     private int port; 

     @Bean 
     public ConnectionFactory connectionFactory() { 
      CachingConnectionFactory factory = new CachingConnectionFactory(); 
      System.out.println("rmqhost is " + host); 
      factory.setHost(host); 
      factory.setVirtualHost(vhost); 
      factory.setUsername(user); 
      factory.setPassword(password); 
      factory.setPort(port); 
      return factory; 
     } 

     @Bean 
     public RabbitAdmin rabbitAdmin() { 
      return new RabbitAdmin(connectionFactory()); 
     } 

    } 

,我們可以爲任何rabbitmqtemplate或rabbitmqListener