我们使用Camel通过ActiveMQ发送消息。 在我们的代码中,我们有以下配置,它可以工作:
@Produce(uri = IEventService.QUEUE_NAME)
private IProducer sender;
@Override
public void emit(final Event e) {
sender.emit(e);
}
现在,我们要使用 ActiveMQ 消息组:http://activemq.apache.org/message-groups.html
根据文档,我需要在消息头中设置 JMSXGroupID。 如何获取消息标头,以便我可以在我的 emit() api 中设置此属性?
谢谢。-美联社_
@Produce注释给 IProducer(你自己定义,对吧?),你可以这样做
@EndpointInject(uri = IEventService.QUEUE_NAME)
private ProducerTemplate sender;
@Override
public void emit(final Event e){
sender.sendBodyAndHeader(e,"JMSXGroupID",someId);
}
不确定这是否可以,或者您是否正在使用 IProducer 进行其他操作。
另一种解决方案是发送到 direct:myname 端点。然后你有一条从("direct:myname").to(IEventService.QUEUE_NAME)的小路线
因此,在此路由中,您可以轻松添加标头。