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
Blockquote
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>mq-jms-spring-boot-starter</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
Blockquote
Blockquote
ibm.mq.queueManager=XXXX
ibm.mq.channel=XXXXXX
ibm.mq.connName=mq-u100-xx.xx.xyz.com(1444)
ibm.mq.user=XXXXX
ibm.mq.password=XXXXX
Blockquote
Blockquote
@Component
public class CDBListener {
@JmsListener(destination = "${mq.queue-name}")
public void receive(Message message) throws JMSException {
TextMessage textMessage = (TextMessage) message;
// business logic
}
}
Blockquote
Blockquote
@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());
}
}
Blockquote
It seems I missed something and due to that this issue, help me to resolve the issue
Thanks
Thanks @Chughts for your support, finally we resolved this issue by making two small change in code
Not sure exactly what was the issue, it might be application property key name causing the problem or Listener method name.