【发布时间】:2018-04-09 04:40:27
【问题描述】:
我只是想对 RabbitMQ 做一个简单的测试,我已经安装了 Erlang 并且正在运行 RabbitMQ。 我的接收器:
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope,
BasicProperties properties, byte[] body) throws IOException
{
// TODO Auto-generated method stub
String message = new String(body, "UTF-8");
System.out.println(" [x] Received '" + message + "'");
}
};
channel.basicConsume(QUEUE_NAME, true, consumer);
}
它永远不会打印出第一个 sysout,因为它在“channel.queueDeclare”行上声明队列时卡住了。 Rabbit 日志显示它正在接受 AMQP 连接,并且用户 guest 已通过身份验证并被授予对 vhost 的访问权限。
任何帮助将不胜感激。
【问题讨论】: