0
votes

In my Spring Boot application I have to read message from IBM MQ queue and process those messages, but my JmsListener method (method with annotation @JmsListener) not called or triggered and there is no error message in log. Implementation details are herein

  1. I have add these dependencies in pom.xml

Blockquote

<dependency>
    <groupId>com.ibm.mq</groupId>
    <artifactId>mq-jms-spring-boot-starter</artifactId>
    <version>2.0.9</version>
</dependency>
<dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-databind</artifactId>
</dependency>

Blockquote

  1. Added annotations @EnableJms in the spring boot application class

  2. Added the server information to the src/main/resources/application.properties file

    ibm.mq.queueManager=XXXX ibm.mq.channel=XXXXXX ibm.mq.connName=localhost(1414) ibm.mq.user=XXXXX ibm.mq.password=XXXXX

  3. Created Listener class

    @Component public class CDBListener { @JmsListener(destination = "CDB_Queue") public void receive(Message message) throws JMSException { TextMessage textMessage = (TextMessage) message;

             // business logic 
         }
      }
    
  4. Added configuration class

    @Configuration public class JmsListenerConfig implements JmsListenerConfigurer {

     @Bean
     public DefaultMessageHandlerMethodFactory handlerMethodFactory() {
         DefaultMessageHandlerMethodFactory factory = new 
         DefaultMessageHandlerMethodFactory();
         factory.setMessageConverter(messageConverter());
         return factory;
     }
    
         @Bean
         public MessageConverter messageConverter() {
         return new MappingJackson2MessageConverter();
        }
    
        @Override
        public void configureJmsListeners(JmsListenerEndpointRegistrar registrar) {
         registrar.setMessageHandlerMethodFactory(handlerMethodFactory());
       }
    
    }
    

Help me to resolve the issue Thanks