Oleg Pavlyukov
Oleg Pavlyukov

Reputation: 161

Weird problem with Java Spring + RabbitMQ + Docker

I try to run simple test project with technologies I wrote above, but got weird exception and can't find a solution. I use windows 7 and docker works on host: 192.168.99.100. Admin panel of rabbitmq by adress http://192.168.99.100:15672, working good.

Application properties:

spring.rabbitmq.host=192.168.99.100
spring.rabbitmq.port=15672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
jsa.rabbitmq.queue=jsa.queue

Component:

@Component
public class Consumer {

    @RabbitListener(queues="${jsa.rabbitmq.queue}")
    public void recievedMessage(String msg) {
        System.out.println("Recieved Message: " + msg);
    }
}

StackTrace:

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]

Why the host was read partly and how can I handle it?

Upvotes: 1

Views: 3027

Answers (1)

Brian
Brian

Reputation: 17309

RabbitMQ brokers listen on port 5672 by default, so change your configuration to use 5672 instead of the management console port 15672:

spring.rabbitmq.port=5672

If your RabbitMQ is configured to use only TLS, then the port may be 5671 instead of 5672.

Reference:

Upvotes: 5

Related Questions