Spring integration 路由到通道配置

Spring integration 路由到通道配置,spring-integration,Spring Integration,我想通过电子邮件发送消息 'startChannel->router1->outChannel' 如果我注释掉'config-2.xml'内容,它就会像我预期的那样工作 当我启用“config-2.xml”内容时,我希望它可以通过 'startChannel->router1->routerChannel->router2->outChannel' 但我有以下例外 EL1008E:(位置0):在上找不到属性或字段“routerChannel” 类型的对象 “org.springframework

我想通过电子邮件发送消息

'startChannel->router1->outChannel'

如果我注释掉'config-2.xml'内容,它就会像我预期的那样工作

当我启用“config-2.xml”内容时,我希望它可以通过

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

但我有以下例外

EL1008E:(位置0):在上找不到属性或字段“routerChannel” 类型的对象 “org.springframework.integration.message.GenericMessage”-可能不是 公众

如何将邮件路由到“routerChannel”

config-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"/>

config-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>


将计算路由器中的表达式,结果应为字符串(单通道)或字符串集合(多通道)。在您的用例中,路由器表达式在config1.xml中没有意义。如果是直接通道值,则此处不使用路由器。

将计算路由器中的表达式,结果应为字符串(单通道)或字符串集合(多通道)。在您的用例中,路由器表达式在config1.xml中没有意义。如果是直接通道值,则此处不使用路由器。

您的SpEL必须如下所示:

expression="@routerChannel"/>

因为它是运行时表达式,所以我们必须遵守它的bean引用协议

您的SpEL必须是这样的:

expression="@routerChannel"/>

因为它是运行时表达式,所以我们必须遵守它的bean引用协议

请添加更多信息。比如:“我希望它能像这样工作,但我得到了这个例外。”等等。你说“不存在”是什么意思还不清楚。可选配置?如果您真的知道如何
该xml,它将如何工作?请添加更多信息。比如:“我希望它能像这样工作,但我得到了这个例外。”等等。你说“不存在”是什么意思还不清楚。可选配置?如果您真的知道如何
该xml,那么它将如何工作?请参阅我的答案。即使它看起来很奇怪,我相信可能有一些用例可以这样做。为了简单起见,我希望表达式逻辑比本主题中的复杂得多。请参阅我的答案。即使它看起来很奇怪,我相信可能有一些用例可以这样做。为了简单起见,我希望表达式逻辑比本主题中的复杂得多。