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
- 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
Added annotations @EnableJms in the spring boot application class
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
Created Listener class
@Component public class CDBListener { @JmsListener(destination = "CDB_Queue") public void receive(Message message) throws JMSException { TextMessage textMessage = (TextMessage) message;
// business logic } }
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