2016-08-17 2 views
0

Я хотел бы, чтобы отправить сообщение черезмаршрут на канал конфигурации

'startChannel-> router1-> outChannel'

Если я закомментировать содержание 'конфиг-2.xml', это работает как я ожидаю.

Когда я включаю содержание 'конфиг-2.xml', я надеюсь, он должен послать сообщение через

'startChannel-> router1-> routerChannel-> router2-> outChannel'

но я получаю следующее исключение.

EL1008E: (поз 0): Свойство или поле 'routerChannel' не может быть найден на объект типа 'org.springframework.integration.message.GenericMessage' - может быть, не общественность?

Как отправить сообщение на «routerChannel»?

конфигурации-1.xml

<int:channel id="startChannel"/> 

<int:router id="router1" 
      input-channel="startChannel" 
      default-output-channel="outChannel" 
      resolution-required="false" 
      expression="routerChannel"/> 

<int:channel id="outChannel"/> 

конфигурации-2.xml

<int:channel id="routerChannel"/> 
<int:router id="router2" 
      input-channel="routerChannel" 
      resolution-required="true" 
      expression="payload.paymentType"> 
    <int:mapping value="CASH" channel="cashPaymentChannel"/> 
    <int:mapping value="CREDIT" channel="authorizePaymentChannel"/> 
    <int:mapping value="DEBIT" channel="authorizePaymentChannel"/> 
</int:router> 
+0

Пожалуйста, добавьте дополнительную информацию. Например: «Я ожидаю, что это сработает, но я получаю это исключение». И так далее. И неясно, что вы имеете в виду, «не существует». Дополнительная конфигурация? Как он может работать, если вы действительно как '' этот xml? –

ответ

1

Ваш SPEL должен быть такой:

expression="@routerChannel"/> 

Поскольку это выражение во время выполнения, мы должны выполнить свой эталонный боб протокол.

1

Выражение в маршрутизаторе будет оцениваться и результат должен быть строкой (один канал) или набор строки (несколько каналов). В вашем примере использования выражение router не имеет смысла в файле config1.xml. Если это прямое значение канала, здесь нет использования маршрутизатора.

+0

См. Мой ответ. Даже если это выглядит странно, я уверен, что для этого могут быть некоторые прецеденты. И я надеюсь, что логика выражения сложна, чем в этой теме для простоты. –