Me gustaría utilizar Spring Integration para implementar un enrutador basado en contenido que use un canal de salida predeterminado si el valor de expresión no coincide con ninguna de las asignaciones. Aquí está mi definición de frijol:Spring Integration: enrutador basado en contenido con canal de salida predeterminado?
<int:router input-channel="channel_in" default-output-channel="channel_default" expression="payload.name">
<int:mapping value="foo" channel="channel_one" />
<int:mapping value="bar" channel="channel_two" />
Sin embargo, parece que el canal de salida por defecto no se usa nunca. Si la expresión se evalúa a, p. 'Baz', el router parece estar en busca de un canal llamado 'baz', en lugar de encaminar a la 'channel_default' canal:
org.springframework.integration.MessagingException: failed to resolve channel name 'baz'
Caused by: org.springframework.integration.support.channel.ChannelResolutionException:
failed to look up MessageChannel bean with name 'baz'
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'baz' is defined
es lo que quiero que sea posible utilizar el espacio de nombres XML, o me necesito codificar mi propia implementación?
Si está leyendo esto para Spring Integration 2.1+, ignore-channel-name-resolution-failures ha sido eliminado. Puede obtener el mismo efecto utilizando resolución-required = "false". Ver http://static.springsource.org/spring-integration/reference/htmlsingle/#2.1-router-standardization – Joe