Ole*_*kov 1 java rabbitmq docker spring-boot
我尝试使用我上面写的技术运行简单的测试项目,但遇到奇怪的异常并且找不到解决方案。我使用 Windows 7 并且 docker 在主机上工作:192.168.99.100。rabbitmq 的管理面板通过地址http://192.168.99.100:15672,运行良好。
应用特性:
spring.rabbitmq.host=192.168.99.100
spring.rabbitmq.port=15672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
jsa.rabbitmq.queue=jsa.queue
Run Code Online (Sandbox Code Playgroud)
成分:
@Component
public class Consumer {
@RabbitListener(queues="${jsa.rabbitmq.queue}")
public void recievedMessage(String msg) {
System.out.println("Recieved Message: " + msg);
}
}
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
2019-09-14 16:00:54.677 ERROR 4532 --- [68.99.100:15672] c.r.c.impl.ForgivingExceptionHandler : An unexpected connection driver error occured
java.net.SocketException: Socket Closed
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_201]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_201]
at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[na:1.8.0_201]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_201]
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[na:1.8.0_201]
at java.io.BufferedInputStream.read(BufferedInputStream.java:265) ~[na:1.8.0_201]
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288) ~[na:1.8.0_201]
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-4.0.2.jar:4.0.2]
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-4.0.2.jar:4.0.2]
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:571) ~[amqp-client-4.0.2.jar:4.0.2]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]
Run Code Online (Sandbox Code Playgroud)
为什么主机被部分读取,我该如何处理?
默认情况下,RabbitMQ 代理侦听端口 5672,因此将您的配置更改为使用 5672 而不是管理控制台端口 15672:
spring.rabbitmq.port=5672
Run Code Online (Sandbox Code Playgroud)
如果您的 RabbitMQ 配置为仅使用 TLS,则端口可能是 5671 而不是 5672。
参考:
| 归档时间: |
|
| 查看次数: |
476 次 |
| 最近记录: |