Я создал простого потребителя для Amazon MQ
, но похоже, что что-то пропустил, потому что всякий раз, когда приходит сообщение, оно должно вызывать мой метод recevieMessage, но он не работает.
Но я попробовал это с apache active MQ, он работает отлично.
PS: я также пытался реализовать класс MessageListener
, переопределяющий метод onMessage()
, но не работал.
Я пытался с другими аргументами в методе receiveMessage
, как Object
, Message
, ByteMessage
....
public class Receiver {
@JmsListener(destination = "Queue_Name")
public void receiveMessage(final Message consumerMessage) throws JMSException {
--some logic on data
}
}
Моя конфигурация:
@Configuration
@EnableJms//enable jms
public class ReceiverConfig {
@Bean//created a ActiveMQ Connection Factory
public ActiveMQConnectionFactory receiverActiveMQConnectionFactory() {
ActiveMQConnectionFactory activeMQConnectionFactory =
new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL(brokerUrl);
activeMQConnectionFactory.setUserName(userName);
activeMQConnectionFactory.setPassword(passWord);
return activeMQConnectionFactory;
}
@Bean// Uses default Jms Listener Container Factory
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory =
new DefaultJmsListenerContainerFactory();
factory
.setConnectionFactory(receiverActiveMQConnectionFactory());
return factory;
}
@Bean
public Receiver receiver() {
return new Receiver();
}
}
Получая это каждый раз, когда я запускаю приложение:
WARN 12740 --- [206:61616@63304] o.a.activemq.ActiveMQSessionExecutor : Received a message on a connection which is not yet started. Have you forgotten to call Connection.start()? Connection: ActiveMQConnection