4

我正在使用 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 将虚拟主机配置为/.

有没有办法做到这一点?

4

3 回答 3

6

我最终通过不使用setUri而是设置单个 URI 组件来解决这个问题。

于 2013-07-26T18:41:21.930 回答
5

您需要使用 %2F 对“/”进行 URL 编码

于 2015-06-10T19:56:12.947 回答
4

对于来自谷歌的人,使用/和 编码的 url/的组合%2f对我有用。

ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://guest:guest@localhost:5672/%2F");
于 2019-10-23T18:36:12.117 回答