我需要为ActiveMQ创建一个主题和一个持久订阅者,我的问题是我不知道在哪里指定。我可以创建主题并使用消息,但是当我关闭订阅者时,请继续发送消息并再次打开订阅者,它不会读取它们。用ActiveMQ创建持久的主题和用户弹簧引导jms
这是我到目前为止有:
发送消息:
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二进制文件。
我希望你能帮助我,在此先感谢。
感谢您的指点我朝着正确的方向 –