我试图使用Spring JMSTemplate.receive(String)方法以同步模式从队列中获取所有消息.
问题是我总是只收到一条消息.这是代码:
@Transactional
public List
如果我删除了@Transactional注释,我会收到所有消息,但所有消息都是在事务中完成的,所以如果稍后在处理这些消息时会有一个例外,消息将会丢失.
这是我的JMSTemplate bean的定义.
我想要实现的是拥有一个事务,并且在此事务中我想获取所有待处理的消息.
最佳答案
@H_403_25@我会回复自己.看起来JMSTemplate不支持它.暂时解决它的唯一方法是扩展JMSTemplate并添加使用JMSTemplate部分的新方法.不幸的是,有些方法是私有的,所以需要复制它们……
public class CustomQueueJmsTemplate extends JmsTemplateDelegate {
public List