如何使用java dsl使用头值路由器?

时间:2015-08-06 04:45:35

标签: spring-integration

如何使用java dsl?来使用标头值路由器?我想根据标题中的值进行路由。

如果我将false传递给我的网关,那就是给我

  

"没有名为' false'已定义"

https://github.com/manojp1988/spring-integration/blob/master/javadsl/src/main/java/router/headerValueRouter/HeaderValueRouterExample.java

@MessagingGateway
  public interface RouterGateway {
    @Gateway(requestChannel = "testChannel")
    String route(@Payload String payload, @Header("enabled") String isEnabled);
  }

@Bean
    public IntegrationFlow routerFlow() {
      return IntegrationFlows.from("testChannel")
                             .route(headerRouter())
                             .get();
    }

    @Bean
    public HeaderValueRouter headerRouter() {
      HeaderValueRouter router = new HeaderValueRouter("enabled");
      router.setIgnoreSendFailures(true);
      router.setChannelMapping("true", "helloChannel");
      router.setDefaultOutputChannel(defaultOutputChannel());
      return router;
    }

1 个答案:

答案 0 :(得分:3)

如果您想在频道解析失败时发送到默认频道,我需要设置router.setResolutionRequired(false);