2013-12-06 2 views
0

В моем приложении несколько экземпляров jms: message-driven-channel-adapter все выводятся на один и тот же внутренний канал. Я хочу связать различный заголовок-enricher с каждым канальным адаптером. Есть ли способ сделать это?Весна Интеграция: объединение обогащения заголовка с помощью канального адаптера

Следующий код показывает, как связать заголовок-обогатитель с внутренним каналом, к которому JMS: управляемые сообщения-канальный адаптер выходов:

<jms:message-driven-channel-adapter id="J1" destination="Q1" channel="in1"/> 
<int:header-enricher input-channel="in1" output-channel="out1"> 
    <int:header name="fromAdapter" value="1"/> 
</int:header-enricher> 

Однако, это не будет работать в моем сценарии , в котором все канальные адаптеры используют один и тот же внутренний канал. Было бы неплохо иметь возможность определять заголовок-обогащение внутри канального адаптера. Есть ли другой способ связать адаптер и обогатить вместе?

Благодаря

ответ

1

Различные заголовочные-обогатители должны иметь разные ввода-каналы в любом случае. Вы можете предоставить некоторую логику маршрутизации и использовать <gateway> для запроса ответа потока для ваших заголовков-обогатителей:

<chain input-channel="in1" output-channel="out1"> 
    <gateway request-channel="enrichement"/> 
</chain> 

<router input-channel="enrichement"> 
    <mapping channel="he1" value=""/> 
    ... 
</router> 

<header-enricher input-channel="he1"> 
... 
</header-enricher> 

<header-enricher input-channel="he2"> 
... 
</header-enricher> 
.... 
<header-enricher input-channel="heN"> 
... 
</header-enricher> 

HTH

Смежные вопросы