1

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 で設定できるように、メッセージ ヘッダーを取得するにはどうすればよいですか?

ありがとう。-AP_

4

2 に答える 2

0

別の解決策は、direct:mynameエンドポイントに送信することです。次に、from( "direct:myname")。to(IEventService.QUEUE_NAME)への小さなルートがあります。

したがって、このルートでは、ヘッダーを簡単に追加できます。

于 2013-01-24T08:54:51.760 に答える
0

@Produce を IProducer (自分で定義したものですよね?) にアノテーションを付ける代わりに、次のことができます。

@EndpointInject(uri = IEventService.QUEUE_NAME)
private ProducerTemplate sender;

@Override
public void emit(final Event e){
   sender.sendBodyAndHeader(e,"JMSXGroupID",someId);
}

ただし、これで問題ないかどうか、または IProducer を他の目的で使用しているかどうかはわかりません。

于 2013-01-23T20:28:33.987 に答える