Amazon MQ 消费者无法获取数据
Amazon MQ Consumer unable to fetch data
我已经为 Amazon MQ
创建了一个简单的消费者,但看起来我错过了一些东西,因为无论何时收到消息,它都应该调用我的 recevieMessage 方法,但它不起作用。
但是我用 apache active MQ 试过了,它工作得很好。
PS:我也尝试过实现 MessageListener
class 覆盖 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
我忘了在 @jmsListner
注释中提及我的用户定义的 jms 侦听器连接工厂名称。
@JmsListener(destination = "Queue-name",containerFactory ="jmsListenerContainerFactory" )
public void receiveMessage(@Payload final Message consumerMessage) throws JMSException {
LOGGER.info("Into receiveMessage Method");
}
但我仍然无法找到这对任何其他 activeMQ 是如何工作的。
我已经为 Amazon MQ
创建了一个简单的消费者,但看起来我错过了一些东西,因为无论何时收到消息,它都应该调用我的 recevieMessage 方法,但它不起作用。
但是我用 apache active MQ 试过了,它工作得很好。
PS:我也尝试过实现 MessageListener
class 覆盖 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
我忘了在 @jmsListner
注释中提及我的用户定义的 jms 侦听器连接工厂名称。
@JmsListener(destination = "Queue-name",containerFactory ="jmsListenerContainerFactory" )
public void receiveMessage(@Payload final Message consumerMessage) throws JMSException {
LOGGER.info("Into receiveMessage Method");
}
但我仍然无法找到这对任何其他 activeMQ 是如何工作的。