Tôi muốn sử dụng Spring Integration để triển khai bộ định tuyến dựa trên nội dung sử dụng kênh đầu ra mặc định nếu giá trị biểu thức không khớp với bất kỳ ánh xạ nào. Dưới đây là định nghĩa bean của tôi:Tích hợp mùa xuân: Bộ định tuyến dựa trên nội dung với kênh đầu ra mặc định?
<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" />
Tuy nhiên, có vẻ như không bao giờ được các kênh đầu ra mặc định được sử dụng. Nếu biểu thức đánh giá, ví dụ: 'Baz', router dường như được tìm kiếm một kênh có tên là 'baz', thay vì định tuyến đến 'channel_default' kênh:
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
phải là những gì tôi muốn ở tất cả có thể sử dụng không gian tên XML, hay tôi cần phải mã hóa việc triển khai của riêng tôi?
Nếu bạn đang đọc này cho Spring Integration 2.1+, bỏ qua-channel-name-resolution-failures đã bị loại bỏ. Bạn có thể nhận được hiệu ứng tương tự bằng cách sử dụng độ phân giải-required = "false". Xem http://static.springsource.org/spring-integration/reference/htmlsingle/#2.1-router-standardization – Joe