2013-06-20 48 views
2

我正在使用RabbitMQ Java API連接到RabbitMQ服務器。我想使用ConnectionFactory.setUri(...)來配置要使用的服務器。它似乎陷入了虛擬主機。如何使用Java RabbitMQ並設置URI服務器?

有一個名爲/的默認虛擬主機。

import com.rabbitmq.client.ConnectionFactory; 
import com.rabbitmq.client.Connection; 
import com.rabbitmq.client.Channel; 

import java.net.URI; 

public class Worker { 

    public static void main(String[] argv) throws Exception { 

     ConnectionFactory factory = new ConnectionFactory(); 
     final URI uri = URI.create("amqp://guest:[email protected]:5672/"); 
     factory.setUri(uri); 
     final Connection connection = factory.newConnection(); 
     final Channel channel = connection.createChannel(); 
    } 
} 

使用上面的代碼,配置的虛擬主機是空的。似乎沒有辦法使用URI來將虛擬主機配置爲/

有沒有辦法做到這一點?

回答

4

我最終通過不使用setUri來解決這個問題,而是設置了各個URI組件。

+0

我用下面(末尾追加另一斜槓)嘗試:'AMQP://來賓:來賓@本地:5672 //'和最終得到'java.lang.IllegalArgumentException:AMQP URI://'的路徑中有多個段。我想現在唯一的方法是使用工廠方法來設置參數,就像你所做的一樣。 –

3

你需要URL編碼的 '/' 用%2F