java - RabbitMQ "Hello World"示例给出 "Connection Refused"

标签 java exception-handling rabbitmq

我正在尝试从这里创建“hello world”应用程序:RabbitMQ Hello World

这是我的生产者类的代码:

package com.mdnaRabbit.producer;

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

import java.io.IOException;

public class App {

    private final static String QUEUE_NAME = "hello";

    public static void main( String[] argv) throws IOException{
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        String message = "Hello World!";
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
        System.out.println(" [x] Sent" + "'");
        channel.close();
        connection.close();
    }
}

下面是我在实现时得到的结果:

Exception in thread "main" java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at com.rabbitmq.client.ConnectionFactory.createFrameHandler(ConnectionFactory.java:445)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:504)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:533)
at com.mdnaRabbit.producer.App.main(App.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Process finished with exit code 1

这是什么原因造成的?

我在这里找到了问题的解决方案 Error in making a socket connection

最佳答案

为了处理它,我安装了 RabbitMQ 服务器。如果未安装 rabbitmq-server 将抛出此错误。 通过点击 http://localhost:15672/ 确保您已经安装了 RabbitMQ 服务器并且它已启动并正在运行。

关于java - RabbitMQ "Hello World"示例给出 "Connection Refused",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15434810/

相关文章:

rabbitmq - 如何在不重启的情况下更改RabbitMQ Heartbeat

spring - 使用 RabbitMQ stomp 适配器跨不同服务器中的订阅中继消息

rabbitmq - 关于RabbitMQ/AMQP中的消息顺序保证

Java:Runtime.getRuntime().exec() - 如何获取对已启动程序 JFrame 的引用?

java - 关于选择算法

error-handling - Struts2 错误处理 - 未找到异常堆栈

.net - 在服务实现的合约列表中找不到 IMetaDataExchange

java - 很难理解已检查和未检查的异常

java - 解决 gradle 拥有的项目依赖关系

java - 将小程序与Web应用程序打包以访问本地文件系统的步骤