2017-08-30 65 views
0

我實現它在Java和希望有終點的構造函數:的RabbitMQ拒絕連接當我設置默認端口

public EndPoint(final String endPointName, final String host, final int port){ 
    this.name=endPointName; 
    ConnectionFactory factory = new ConnectionFactory(); 

    factory.setHost(host); 
    factory.setPort(port); 
    connection = factory.newConnection(); 

    channel = connection.createChannel(); 
    channel.queueDeclare(name, false, false, false, null); 

} 

我收到EOFException:connection refused甚至當我設置被認爲是參數"localhost"15672據我所知,默認爲默認。問題出在方法setPort():沒有它,一切正常。

爲什麼我認爲15672端口是正確的?沒有setPort()我可以打開我的瀏覽器Rabbitmq助手localhost:15672並查看我創建的隊列。

如何設置端口沒有異常?

回答

1

RabbitMQ操作協議的默認端口是5672;端口15672是管理插件(「GUI」)的默認端口。

0

不同版本的RabbitMQ具有不同的默認端口。如果代碼在沒有調用setPort()的情況下工作,那麼我期望RabbitMQ客戶端運行時庫使用的默認值 - 無論是什麼 - 都是正確的,並且您對15672的具體選擇不正確。

「連接被拒絕」幾乎總是意味着沒有任何內容實際上在指定端口上進行偵聽。

+0

當我不使用setPort()我可以在瀏覽器本地主機:15672打開,看到我創建的rabbitmq隊列 – user2957954

+1

嘗試5672不是15672 – cantSleepNow

+0

我不使用RabbitMQ太多,所以也許這是關閉的,但:可以15672是某種管理港口,而不是經紀人港口?正如前面的海報所指出的那樣,現在5672是AMQP信息的通常默認設置。當我使用ActiveMQ/Artemis進行AMQP時,我無法將網絡瀏覽器連接到AMQP端口。 –

相關問題