Manoj
Manoj

Reputation: 5867

How to use header value router using java dsl?

How to use header value router using java dsl?. I want to route based on the value comes in the header.

If I pass false to my gateway, it is giving me

"No bean named 'false' is defined"

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;
    }

Upvotes: 2

Views: 1347

Answers (1)

Manoj
Manoj

Reputation: 5867

I need to set router.setResolutionRequired(false); if you want to send to default channel when channel resolution failed.

Upvotes: 3

Related Questions