2016-05-01 9 views
0

私はLAN接続を使ってこれらのPCに接続しています。 RabbitMQサーバーは10.100.94.25 PCにインストールされています。私は10.100.94.28 PCから接続を作成しようとしています。 ウサギMQサーバPC(10.100.94.25)クライアントPC(10.100.94.28) windowsコマンドプロンプトを使用しています。それは成功しました。しかし、コードから接続を作成しようとすると、機能しません。私のコードとエラーログを確認してください。エラーは、私に "タイムアウトエラー"と伝えています。私は何をすべきか?2台のローカルPC(<strong>Windows OS</strong>)間でメッセージを送信しようとしていますが、LAN上の2台のPC(Windows、RabbitMQ)間の接続を作成できません。

私は正常に同じPCからメッセージを送受信しました。つまり、ホストとしてlocalhostを使用すると、完全に動作します。リモートアクセスのためにここで欠けている小さな接触は何ですか?

connectionFactory = new ConnectionFactory(); 
connectionFactory.setUsername("shoshi"); 
connectionFactory.setPassword("shoshi"); 
connectionFactory.setHost("10.100.94.25"); 
connectionFactory.setPort(5672); 
connection = connectionFactory.newConnection(); // this is 451 number line 

エラー:

May 01, 2016 6:00:35 PM com.chat.UI initRabbitMQ 
SEVERE: null 
java.net.ConnectException: Connection timed out: connect 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) 
    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.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    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:714) 
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:760) 
    at com.chat.UI.initRabbitMQ(UI.java:451) 
    at com.chat.UI.<init>(UI.java:48) 
    at com.chat.UI$8.run(UI.java:405) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) 
    at java.awt.EventQueue.access$200(EventQueue.java:103) 
    at java.awt.EventQueue$3.run(EventQueue.java:694) 
    at java.awt.EventQueue$3.run(EventQueue.java:692) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 
+0

あなたはtelnet ip portを試しましたか? – cantSleepNow

+0

どうすればいいですか? @cantSleepNow – Shoshi

+1

cmdを開き、 'telnet 10.100.94.25 5672'と入力して、ポート – cantSleepNow

答えて

1

私は5672ポートが開いているかどうかを推測していました。またはファイアウォールがブロックしているかどうか。彼らの命令のためにcantSleepNowThomasのおかげで。

私は何をしましたか?私はちょうどtelnetを使用してポート番号をチェックします。コマンドはtelnet IP_ADDRESS PORT_NUMBERです。 telnetがコマンドとして認識されない場合は、有効にする必要があります。怒鳴るの指示に従ってください。

Telnetをインストールするには、次の手順に従ってください。

  1. は、[スタート]ボタンをクリックし、[コントロールパネル]を選択します。
  2. [プログラムと機能]を​​選択します。
  3. [Windowsの機能を有効または無効にする]を選択します。
  4. [Telnetクライアント]オプションを選択します。
  5. [OK]をクリックします。

または、follow this link

私はtelnet localhost 5672コマンドを使用して応答を得ることができました。 telnet 10.100.94.25 5672コマンドでは表示されません。

  • connection refusedは何も
  • acceptedは何かが
  • timeoutは、ファイアウォールがアクセスをブロックしていることを意味し、そのポート上で実行されていることを意味し、そのポート上で実行されていないことを意味します。私はことを得るTHIS POSTからも

私のエラーログには、それが表示されます

これでファイアウォールの問題であると確信しています。 次に、THIS TUTORIALに従うことによって、リモートアクセス用にerlangを開きます。そして今、それは働いています。

PCのIPアドレスを知るには、CMDを使用してipconfigと入力してください。

1

これはおそらく(Windowsの場合)ファイアウォールの問題で、そのポートへの接続が許可されていることを確認してください。私ActiveMQのセットアップを

0

、私は通常私の接続を確認方法は次のとおりです。

私はActiveMQのシステム上のトピックにサブスクライブテスターEJBを持っています。私は自分のActiveMQシステムを起動し、別のシステムの自分のサーバーでEJBを実行します。接続がすべて正常であれば、このEJBはActiveMQダッシュボード上のコンシューマとして表示されます。この方法では、接続の設定に問題がなく、接続のセットアップが保証されます。あなたはpingが働いているので、このテストは理想的には成功するはずです。

成功する場合は、プロデューサーが正常に動作していることを確認する必要があります。 障害が発生した場合は、接続が正しく設定されていないことがわかります。

関連する問題