使用ActiveMQ创建持久主题和订阅者spring boot jms
我需要为ActiveMQ创建一个主题和一个持久的订阅者,我的问题是我不知道在哪里指定它.我能够创建主题并使用消息,但是当我关闭订阅者然后继续发送消息并再次打开订阅者时,它将不会读取它们.
这是我到目前为止:
发送消息:
JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);
jmsTemplate.setPubSubDomain(true);
jmsTemplate.setDeliveryMode(DeliveryMode.PERSISTENT);
jmsTemplate.setDeliveryPersistent(true);
jmsTemplate.convertAndSend("venta.topic",venta);
收到邮件:
@JmsListener(destination = "venta.topic",id = "comercial",subscription = "venta.topic")
public void receiveMessage(Venta venta) {
logger.log(Level.INFO, "RECEIVED : {0}",venta);
repository.save(venta);
}
我已阅读this article,我明白我需要创建持久订阅者.
我也读过spring docs
而且我认为它与DefaultJmsListenerContainerFactory(我没有实现,我使用默认配置)有关,文档显示:
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory =
new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setDestinationResolver(destinationResolver());
factory.setConcurrency("3-10");
return factory;
}
但我似乎无法找到创建持久会话的位置.我的生产者和我的订阅者都连接到一个独立的activemq二进制文件.
我希望你能提前帮助我.