This repo is a copy & paste of the code sample @ https://github.com/apache/camel/tree/master/examples/camel-example-rabbitmq with couple of adjustments to reproduce a problem reported in Apache Camel user-forum.
How to run
The sample requires a RabbitMQ broker to be running.
You can for example easily start RabbitMQ via Docker
docker run -it -p 5672:5672 -p 15672:15672 --hostname my-rabbit --name some-rabbit rabbitmq:3
Then you can run this example using
mvn spring-boot:run
Which gives you the following output on the Console:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
2018-11-11 14:04:12.042 INFO 4225 --- [ main] sample.camel.SampleCamelApplication : Starting SampleCamelApplication on Babaks-iMac with PID 4225 (/Users/bvahdat/Downloads/apache-camel-2.22.1/examples/camel-user-forum-rabbitmq/target/classes started by bvahdat in /Users/bvahdat/Downloads/apache-camel-2.22.1/examples/camel-user-forum-rabbitmq)
2018-11-11 14:04:12.046 INFO 4225 --- [ main] sample.camel.SampleCamelApplication : No active profile set, falling back to default profiles: default
2018-11-11 14:04:14.061 INFO 4225 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.apache.camel.spring.boot.CamelAutoConfiguration' of type [org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$64de8929] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-11-11 14:04:14.266 INFO 4225 --- [ main] org.xnio : XNIO version 3.3.8.Final
2018-11-11 14:04:14.279 INFO 4225 --- [ main] org.xnio.nio : XNIO NIO Implementation Version 3.3.8.Final
2018-11-11 14:04:14.359 WARN 4225 --- [ main] io.undertow.websockets.jsr : UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
2018-11-11 14:04:14.359 WARN 4225 --- [ main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2018-11-11 14:04:14.379 INFO 4225 --- [ main] io.undertow.servlet : Initializing Spring embedded WebApplicationContext
2018-11-11 14:04:14.379 INFO 4225 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2273 ms
2018-11-11 14:04:14.403 INFO 4225 --- [ main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-11-11 14:04:14.407 INFO 4225 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-11-11 14:04:14.407 INFO 4225 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-11-11 14:04:14.408 INFO 4225 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'formContentFilter' to: [/*]
2018-11-11 14:04:14.408 INFO 4225 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-11-11 14:04:14.586 INFO 4225 --- [ main] o.a.c.i.converter.DefaultTypeConverter : Type converters loaded (core: 195, classpath: 1)
2018-11-11 14:04:14.778 INFO 4225 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-11 14:04:15.193 INFO 4225 --- [ main] o.a.camel.spring.boot.RoutesCollector : Loading additional Camel XML routes from: classpath:camel/*.xml
2018-11-11 14:04:15.194 INFO 4225 --- [ main] o.a.camel.spring.boot.RoutesCollector : Loading additional Camel XML rests from: classpath:camel-rest/*.xml
2018-11-11 14:04:15.206 INFO 4225 --- [ main] o.a.camel.spring.SpringCamelContext : Apache Camel 2.22.1 (CamelContext: RMQ2S3) is starting
2018-11-11 14:04:15.207 INFO 4225 --- [ main] o.a.c.m.ManagedManagementStrategy : JMX is enabled
2018-11-11 14:04:15.679 INFO 4225 --- [ main] o.a.c.c.rabbitmq.RabbitMQComponent : Auto-detected single instance: customConnectionFactory of type ConnectionFactory in Registry to be used as ConnectionFactory when creating endpoint: rabbitmq://connectionFactory=%23customConnectionFactory&queue=network_status&vhost=rbo&exchangeType=queue&autoDelete=false&prefetchEnabled=true&prefetchCount=100&threadPoolSize=100&channelPoolMaxSize=100
2018-11-11 14:04:15.733 INFO 4225 --- [ main] o.a.camel.spring.SpringCamelContext : StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
2018-11-11 14:04:15.897 INFO 4225 --- [ main] o.a.camel.spring.SpringCamelContext : Route: hello started and consuming from: rabbitmq://connectionFactory=%23customConnectionFactory&queue=network_status&vhost=rbo&exchangeType=queue&autoDelete=false&prefetchEnabled=true&prefetchCount=100&threadPoolSize=100&channelPoolMaxSize=100
2018-11-11 14:04:15.898 INFO 4225 --- [ main] o.a.camel.spring.SpringCamelContext : Total 1 routes, of which 1 are started
2018-11-11 14:04:15.899 INFO 4225 --- [ main] o.a.camel.spring.SpringCamelContext : Apache Camel 2.22.1 (CamelContext: RMQ2S3) started in 0.692 seconds
2018-11-11 14:04:15.954 INFO 4225 --- [ main] o.s.b.w.e.u.UndertowServletWebServer : Undertow started on port(s) 8080 (http) with context path ''
2018-11-11 14:04:15.959 INFO 4225 --- [ main] sample.camel.SampleCamelApplication : Started SampleCamelApplication in 4.223 seconds (JVM running for 7.834)
Now change the RabbitMQ port from 5672
to 15672
inside rmq-to-s3-camel.xml
, then build and restart the App which will end up with the following error:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.0.RELEASE)
2018-11-11 14:44:16.072 INFO 5169 --- [ main] sample.camel.SampleCamelApplication : Starting SampleCamelApplication on Babaks-iMac with PID 5169 (/Users/bvahdat/Downloads/apache-camel-2.22.1/examples/camel-user-forum-rabbitmq/target/classes started by bvahdat in /Users/bvahdat/Downloads/apache-camel-2.22.1/examples/camel-user-forum-rabbitmq)
2018-11-11 14:44:16.076 INFO 5169 --- [ main] sample.camel.SampleCamelApplication : No active profile set, falling back to default profiles: default
2018-11-11 14:44:18.162 INFO 5169 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.apache.camel.spring.boot.CamelAutoConfiguration' of type [org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$2258031c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-11-11 14:44:18.376 INFO 5169 --- [ main] org.xnio : XNIO version 3.3.8.Final
2018-11-11 14:44:18.391 INFO 5169 --- [ main] org.xnio.nio : XNIO NIO Implementation Version 3.3.8.Final
2018-11-11 14:44:18.473 WARN 5169 --- [ main] io.undertow.websockets.jsr : UT026009: XNIO worker was not set on WebSocketDeploymentInfo, the default worker will be used
2018-11-11 14:44:18.473 WARN 5169 --- [ main] io.undertow.websockets.jsr : UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
2018-11-11 14:44:18.495 INFO 5169 --- [ main] io.undertow.servlet : Initializing Spring embedded WebApplicationContext
2018-11-11 14:44:18.495 INFO 5169 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2370 ms
2018-11-11 14:44:18.520 INFO 5169 --- [ main] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/]
2018-11-11 14:44:18.524 INFO 5169 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-11-11 14:44:18.525 INFO 5169 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-11-11 14:44:18.525 INFO 5169 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'formContentFilter' to: [/*]
2018-11-11 14:44:18.525 INFO 5169 --- [ main] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*]
2018-11-11 14:44:18.712 INFO 5169 --- [ main] o.a.c.i.converter.DefaultTypeConverter : Type converters loaded (core: 195, classpath: 1)
2018-11-11 14:44:18.917 INFO 5169 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-11 14:44:19.348 INFO 5169 --- [ main] o.a.camel.spring.boot.RoutesCollector : Loading additional Camel XML routes from: classpath:camel/*.xml
2018-11-11 14:44:19.349 INFO 5169 --- [ main] o.a.camel.spring.boot.RoutesCollector : Loading additional Camel XML rests from: classpath:camel-rest/*.xml
2018-11-11 14:44:19.363 INFO 5169 --- [ main] o.a.camel.spring.SpringCamelContext : Apache Camel 2.22.1 (CamelContext: RMQ2S3) is starting
2018-11-11 14:44:19.364 INFO 5169 --- [ main] o.a.c.m.ManagedManagementStrategy : JMX is enabled
2018-11-11 14:44:19.810 INFO 5169 --- [ main] o.a.c.c.rabbitmq.RabbitMQComponent : Auto-detected single instance: customConnectionFactory of type ConnectionFactory in Registry to be used as ConnectionFactory when creating endpoint: rabbitmq://connectionFactory=%23customConnectionFactory&queue=network_status&vhost=rbo&exchangeType=queue&autoDelete=false&prefetchEnabled=true&prefetchCount=100&threadPoolSize=100&channelPoolMaxSize=100
2018-11-11 14:44:19.866 INFO 5169 --- [ main] o.a.camel.spring.SpringCamelContext : StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
2018-11-11 14:44:19.958 WARN 5169 --- [ main] o.a.c.component.rabbitmq.RabbitConsumer : Unable to open channel for RabbitMQConsumer. Continuing and will try again
java.io.IOException: null
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:126) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:122) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:373) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:156) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1095) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1054) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1012) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1201) ~[amqp-client-5.4.3.jar:5.4.3]
at org.apache.camel.component.rabbitmq.RabbitMQEndpoint.connect(RabbitMQEndpoint.java:230) ~[camel-rabbitmq-2.22.1.jar:2.22.1]
at org.apache.camel.component.rabbitmq.RabbitMQConsumer.openConnection(RabbitMQConsumer.java:64) [camel-rabbitmq-2.22.1.jar:2.22.1]
at org.apache.camel.component.rabbitmq.RabbitMQConsumer.getConnection(RabbitMQConsumer.java:75) [camel-rabbitmq-2.22.1.jar:2.22.1]
at org.apache.camel.component.rabbitmq.RabbitConsumer.<init>(RabbitConsumer.java:55) ~[camel-rabbitmq-2.22.1.jar:2.22.1]
at org.apache.camel.component.rabbitmq.RabbitMQConsumer.createConsumer(RabbitMQConsumer.java:120) [camel-rabbitmq-2.22.1.jar:2.22.1]
at org.apache.camel.component.rabbitmq.RabbitMQConsumer.createConsumers(RabbitMQConsumer.java:96) [camel-rabbitmq-2.22.1.jar:2.22.1]
at org.apache.camel.component.rabbitmq.RabbitMQConsumer.doStart(RabbitMQConsumer.java:172) [camel-rabbitmq-2.22.1.jar:2.22.1]
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:3705) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:4023) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:3958) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3878) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3642) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3494) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3253) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3249) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3272) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3249) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3165) [camel-core-2.22.1.jar:2.22.1]
at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133) [camel-spring-2.22.1.jar:2.22.1]
at org.apache.camel.spring.CamelContextFactoryBean.start(CamelContextFactoryBean.java:369) [camel-spring-2.22.1.jar:2.22.1]
at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:416) [camel-spring-2.22.1.jar:2.22.1]
at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:94) [camel-spring-2.22.1.jar:2.22.1]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) [spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) [spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) [spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:398) [spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:355) [spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:882) [spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) [spring-context-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at sample.camel.SampleCamelApplication.main(SampleCamelApplication.java:35) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:558) [spring-boot-maven-plugin-2.1.0.RELEASE.jar:2.1.0.RELEASE]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_144]
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:494) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:315) ~[amqp-client-5.4.3.jar:5.4.3]
... 52 common frames omitted
Caused by: java.io.EOFException: null
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:290) ~[na:1.8.0_144]
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-5.4.3.jar:5.4.3]
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:596) ~[amqp-client-5.4.3.jar:5.4.3]
... 1 common frames omitted
2018-11-11 14:44:19.961 INFO 5169 --- [ main] o.a.c.c.rabbitmq.RabbitMQConsumer : Connection failed, will start background thread to retry!