Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.6.0
-
None
Description
A simple JMS pub-sub flow using RabbitMQ does not work.
- Install/setup RabbitMQ
- Create a JMSConnectionFactoryProvider, and configure it to work with RabbitMQ (including the required JARs amqp-client and rabbitmq-jms)
- Create a flow with GenerateFlowFile -> PublishJMS to publish something on a queue
- Create a ConsumeJMS processor that attempts to recover what was just published
Result: when the message is consumed, the ClassLoader does not have the JMS libraries.
2018-06-28 15:47:27,161 ERROR [Timer-Driven Process Thread-9] o.apache.nifi.jms.processors.ConsumeJMS ConsumeJMS[id=01641047-1441-10a4-ce22-23d392689dd9] ConsumeJMS[id=01641047-1441-10a4-ce22-23d392689dd9] failed to process session due to org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is com.rabbitmq.jms.util.RMQJMSException: com.rabbitmq.jms.client.message.RMQTextMessage; Processor Administratively Yielded for 1 sec: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is com.rabbitmq.jms.util.RMQJMSException: com.rabbitmq.jms.client.message.RMQTextMessageorg.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is com.rabbitmq.jms.util.RMQJMSException: com.rabbitmq.jms.client.message.RMQTextMessage at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316) at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:169) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:497) at org.apache.nifi.jms.processors.JMSConsumer.consume(JMSConsumer.java:85) at org.apache.nifi.jms.processors.ConsumeJMS.rendezvousWithJms(ConsumeJMS.java:181) at org.apache.nifi.jms.processors.ConsumeJMS.rendezvousWithJms(ConsumeJMS.java:59) at org.apache.nifi.jms.processors.AbstractJMSProcessor.onTrigger(AbstractJMSProcessor.java:157) at org.apache.nifi.jms.processors.ConsumeJMS.onTrigger(ConsumeJMS.java:59) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1147) at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:175) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)Caused by: com.rabbitmq.jms.util.RMQJMSException: com.rabbitmq.jms.client.message.RMQTextMessage at com.rabbitmq.jms.client.RMQMessage.instantiateRmqMessage(RMQMessage.java:1070) at com.rabbitmq.jms.client.RMQMessage.fromMessage(RMQMessage.java:1030) at com.rabbitmq.jms.client.RMQMessage.convertJmsMessage(RMQMessage.java:871) at com.rabbitmq.jms.client.RMQMessage.convertMessage(RMQMessage.java:865) at com.rabbitmq.jms.client.RMQMessageConsumer.receive(RMQMessageConsumer.java:331) at com.rabbitmq.jms.client.RMQMessageConsumer.receive(RMQMessageConsumer.java:246) at org.apache.nifi.jms.processors.JMSConsumer$1.doInJms(JMSConsumer.java:95) at org.apache.nifi.jms.processors.JMSConsumer$1.doInJms(JMSConsumer.java:85) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:494) ... 16 common frames omittedCaused by: java.lang.ClassNotFoundException: com.rabbitmq.jms.client.message.RMQTextMessage at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at com.rabbitmq.jms.client.RMQMessage.instantiateRmqMessage(RMQMessage.java:1064) ... 24 common frames omitted