web-dev-qa-db-ja.com

RabbitMQの「Hello World」の例では「接続が拒否されました」

IIは「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

これは何が原因ですか?

私はここに私の問題の解決策を見つけました ソケット接続の作成エラー

14
Nikitin Mikhail

これに対処するために、RabbitMQサーバーをインストールしました。 rabbitmq-serverがインストールされていない場合、このエラーがスローされます。 RabbitMQサーバーがインストールされており、 http:// localhost:15672 /

17
Nikitin Mikhail

この「接続拒否」エラーも発生しました:

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:392)
at Java.net.Socket.connect(Socket.Java:579)
at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.Java:32)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.Java:588)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.Java:612)
at ReceiveLogs.main(ReceiveLogs.Java:14)

内部からIPアドレスを設定して間違えた/etc/rabbitmq/rabbitmq-env.confを間違ったIPアドレスに:

NODE_IP_ADDRESS=10.0.1.45

この構成パラメーターを削除すると、エラーはなくなります。

3
Eric Leschinski

Rabbit MQサーバーを起動します。このサーバーを起動するためのバッチファイルは、rabbitmq_server-3.6.0\sbin> rabbitmq-server.bat startの下にあり、機能します。

1
Jay

私の場合、サーバーを起動しようとして次のエラーが発生しました<Rabbit intall path>\rabbitmq_server-3.6.0\sbin>rabbitmq-server.bat start ERROR: epmd error for Host Protocol: inet_tcp: register/listen error: econnrefused: nxdomain (non-existing domain)

私がしたことは、Hostファイルに次の行を追加することでした:127.0.0.1 localhost

そして、rabbitmq-serverが起動しました。この後、私はconnection refuseエラーはもう発生しません。お役に立てれば。

1
jcarcamo

私はこの問題を単に実行することで解決しました:

 Sudo rabbitmq-server
1
Smile4ever

Rabbit MQ Sereverを起動する必要があります

Windowsファイル名:RabbitMQサービス-開始

次のコードを使用できます。

import Java.io.IOException;
import Java.util.ResourceBundle;
import Java.util.concurrent.TimeoutException;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class NewTaskController implements Runnable {
    private final String message;

     private static final String EXCHANGE_NAME = "test";

     private static final String ROUTING_KEY = "test";

     public NewTaskController(final String message) {
         this.message = message;
     }

     @Override
     public void run() {

        //getting data from application.properties
         //for the rabbit_mq configuration

         ResourceBundle mRB = ResourceBundle.getBundle("application");


         System.out.println("*****NewTaskController************"+mRB.getString("rabbitmq.port"));
        String rabbitmq_username = mRB.getString("rabbitmq.username");
        String rabbitmq_password = mRB.getString("rabbitmq.password");
                String rabbitmq_hostname = mRB.getString("rabbitmq.hostname");
                        int rabbitmq_port = Integer.parseInt(mRB.getString("rabbitmq.port"));
     ConnectionFactory factory = new ConnectionFactory();
     factory.setUsername(rabbitmq_username);
     factory.setPassword(rabbitmq_password);
     factory.setHost(rabbitmq_hostname);
     factory.setPort(rabbitmq_port);
     Connection conn;
     try {
     conn = factory.newConnection();
     Channel channel = conn.createChannel();

     channel.exchangeDeclare(EXCHANGE_NAME, "direct", true);
     String queueName = channel.queueDeclare().getQueue();
     System.out.println(queueName);
     channel.queueBind(queueName, EXCHANGE_NAME, ROUTING_KEY);
     System.out.println("Producing message: " + message + " in thread: " + Thread.currentThread().getName());
     channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, message.getBytes());

     try {
        channel.close();
    } catch (TimeoutException e) {
        e.printStackTrace();
    }
     conn.close();
     } catch (IOException | TimeoutException e) {
     e.printStackTrace();
     }
}
}

application.propertiesファイル:

rabbitmq.username=guest
rabbitmq.password=guest
rabbitmq.hostname=localhost
rabbitmq.port=5672
0
Usman Yaqoob