Apache camel ApacheCamel-停止执行并返回失败消息

Apache camel ApacheCamel-停止执行并返回失败消息,apache-camel,Apache Camel,我正在寻找一个集成框架。猜猜看,我发现了一只——阿帕奇骆驼。这个框架很酷。但对于我的一个要求,我无法按正确的顺序放置组件。该要求分为以下几个阶段- Authentication Authorization PreProcessing etc. 因此,当请求到来时,我需要进行身份验证、授权、预处理等。问题是这些步骤中的每一步都可能失败,因此我不希望执行流继续,而应该返回一些失败消息。 我在试这种东西- from("jetty").choice(). when(Auth.isAuthenticat

我正在寻找一个集成框架。猜猜看,我发现了一只——阿帕奇骆驼。这个框架很酷。但对于我的一个要求,我无法按正确的顺序放置组件。该要求分为以下几个阶段-

Authentication
Authorization
PreProcessing etc.
因此,当请求到来时,我需要进行身份验证、授权、预处理等。问题是这些步骤中的每一步都可能失败,因此我不希望执行流继续,而应该返回一些失败消息。 我在试这种东西-

from("jetty").choice().
when(Auth.isAuthenticated()).
       // proceed to authorization
       // proceed to preprocessing 
otherwise()
      // do something
endChoice();

但这里的问题是授权阶段也可能失败,那么不应该执行预处理步骤,授权阶段本身应该返回失败消息。可能吗

是的,这是标准的驼峰错误处理。 请参阅错误和异常处理文档。

  • 授权阶段出现问题。好的,抛出一个异常
  • 您有一个基于该异常触发的OneException,然后执行一些操作。您可以记录、重试或将消息发送到另一个路由,该路由可以将消息置于ActiveMQ上的死信队列中 我可能会做的另一件事是将您的功能拆分为不同的路由。将身份验证、授权和预处理放在不同的路径中。这样做的一大好处是它们彼此不依赖,因此需要此功能的其他流可以简单地调用路由,您可以重用它们。此外,如果身份验证出现问题,则消息永远不会到达身份验证路由等