java - Spring集成路由器中的异常处理

标签 java spring spring-integration

我是集成新手。我有一个路由器。在特定场景下,该方法会抛出异常。基于该异常,我如何路由我的消息。我想捕获该异常并基于将我的消息路由到另一个例如 channel 。

<integration:router ref="serviceImpl" method="getName"/>

最佳答案

您可以尝试如下操作:

首先按以下方式配置路由器和 bean:

<integration:router ref="serviceImpl" method="getName"/>
<beans:bean class="com.test.ServiceImpl" id="serviceImpl">
</beans:bean>
</int:router>

那么你的ServiceImpl.java应该如下所示:

 public class ServiceImpl {

     public String getName(Name name) {

      String channel = "";

      try {
       //Your business validations should be here and if everything is okay, then route the message to some channel
       channel = "goToSomeChannel"
      } catch (SomeException e) {
       //You got the exception, So route to different channel
       channel = "goToSomethingElseChannel";
      }

      return channel;
     }


}

最后,您在 spring 集成配置文件中定义了 channel goToSomeChannelgoToSomethingElseChannel

关于java - Spring集成路由器中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44148930/

相关文章:

java - RestTemplate仅包含两个MessageConverter,并且无法将XML转换为Java对象

java - Spring Boot集成url分页解决方案

java - Spring Boot + Hibernate + Postgres - 不创建表

java - 查找复选框是否在 servlet 中被选中

java - 谷歌吉斯。使用@Provides注解注释的方法不会被调用

java - 内存处理导致数据污染的风险 - JAVA

java - 如何使用存储库接口(interface)在 Spring Data 中通过其嵌套对象的 objectId 查找集合?

java - PowerMock AmazonS3Client 配置问题

java - Tomcat v7 不会运行

java - 在 spring 集成中将多个有效负载嵌入到 "Message"对象中的最佳方法是什么?