如何使用Java RabbitMQ并设置URI服务器?

时间:2013-06-20 19:11:58

标签: java rabbitmq amqp

我正在使用RabbitMQ Java API连接到RabbitMQ服务器。我想使用ConnectionFactory.setUri(...)来配置要使用的服务器。它似乎是虚拟主机。

有一个名为/的默认虚拟主机。

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:guest@localhost:5672/");
        factory.setUri(uri);
        final Connection connection = factory.newConnection();
        final Channel channel = connection.createChannel();
    }
}

使用上面的代码,配置的虚拟主机为空。似乎没有办法使用URI将虚拟主机配置为/

有办法做到这一点吗?

3 个答案:

答案 0 :(得分:4)

我最后通过不使用setUri来解决这个问题,而是设置了各个URI组件。

答案 1 :(得分:4)

您需要对' /'进行网址编码。使用%2F

答案 2 :(得分:1)

对于来自Google的人来说,结合使用/和网址编码为/的网址%2f来为我工作。

ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://guest:guest@localhost:5672/%2F");