Java 无法在LAN上的两台PC(windows、RabbitMQ)之间创建连接
我正在尝试在两台本地PC(Windows OS)之间发送消息。我已使用局域网连接到这些电脑。RabbitMQ服务器安装在10.100.94.25PC上。我正在尝试从10.100.94.28PC创建连接。我使用windows命令提示符从客户端PC(10.100.94.28)ping到我的RabbitMQ服务器PC(10.100.94.25)。这是成功的。但是,当我尝试从代码创建连接时,它不起作用。请检查我的代码和下面的错误日志。错误告诉我“超时错误”。我该怎么办 我已经成功地从同一台PC发送和接收了一条消息。这意味着,当我使用Java 无法在LAN上的两台PC(windows、RabbitMQ)之间创建连接,java,rabbitmq,port,message-queue,firewall,Java,Rabbitmq,Port,Message Queue,Firewall,我正在尝试在两台本地PC(Windows OS)之间发送消息。我已使用局域网连接到这些电脑。RabbitMQ服务器安装在10.100.94.25PC上。我正在尝试从10.100.94.28PC创建连接。我使用windows命令提示符从客户端PC(10.100.94.28)ping到我的RabbitMQ服务器PC(10.100.94.25)。这是成功的。但是,当我尝试从代码创建连接时,它不起作用。请检查我的代码和下面的错误日志。错误告诉我“超时错误”。我该怎么办 我已经成功地从同一台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)
2016年5月1日下午6:00:35 com.chat.UI initRabbitMQ
严重:空
java.net.ConnectException:连接超时:连接
位于java.net.DualStackPlainSocketImpl.waitForConnect(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
位于java.net.socksocketimpl.connect(socksocketimpl.java:392)
位于java.net.Socket.connect(Socket.java:579)
位于com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)
位于com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:714)
位于com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:760)
位于com.chat.UI.initRabbitMQ(UI.java:451)
在com.chat.UI.(UI.java:48)
在com.chat.UI$8.run(UI.java:405)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
在java.awt.EventQueue.access$200(EventQueue.java:103)
位于java.awt.EventQueue$3.run(EventQueue.java:694)
在java.awt.EventQueue$3.run(EventQueue.java:692)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161)
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
这很可能是(Windows)防火墙问题,请确保允许连接到该端口。这很可能是(Windows)防火墙问题,请确保允许连接到该端口。使用ActiveMQ设置,我通常检查连接的方式是:
我有一个tester EJB,它订阅ActiveMQ系统上的一个主题。我启动ActiveMQ系统,然后在另一个系统上的我自己的服务器上运行EJB。如果连接正常,那么这个EJB将在ActiveMQ仪表板上显示为使用者。此方法确保连接设置不会出现任何设置连接的实质性问题。由于YouPing正在工作,因此理想情况下,此测试应该成功通过
如果成功,你需要确保你的制作人工作正常。
如果失败,您肯定知道连接未正确设置。对于我的ActiveMQ设置,我通常检查连接的方式是: 我有一个tester EJB,它订阅ActiveMQ系统上的一个主题。我启动ActiveMQ系统,然后在另一个系统上的我自己的服务器上运行EJB。如果连接正常,那么这个EJB将在ActiveMQ仪表板上显示为使用者。此方法确保连接设置不会出现任何设置连接的实质性问题。由于YouPing正在工作,因此理想情况下,此测试应该成功通过 如果成功,你需要确保你的制作人工作正常。
如果出现故障,您肯定知道连接未正确设置。我猜测
5672
端口是否打开。或者防火墙是否正在阻止它。感谢并感谢他们的指导
那么,我做了什么?我只是使用telnet
检查端口号。该命令是telnet IP\u ADDRESS PORT\u NUMBER
。如果telnet
未被识别为命令,则必须启用它。请遵循以下说明:
要安装Telnet,请按照以下说明操作:
telnet localhost 5672
命令获得响应。但不能使用telnet 10.100.94.25 5672命令
另外,我从中得到:
表示该端口上没有运行任何内容连接被拒绝
表示某个端口正在运行accepted
表示防火墙正在阻止访问超时
java.net.ConnectException:Connection timed out:connect
所以,现在我确信这是一个防火墙问题。
然后,我只需打开erlang
,通过以下方式进行远程访问。现在它正在工作
要知道您电脑的IP地址,只需键入ipconfig