我有一个路由,它从FTP服务器读取,然后处理消息。该路由具有DeadletterChannel错误处理程序,当处理消息时引发异常时,它会将消息路由到某个bean。
现在,当错误处理程序处理异常时,Camel 假定所有内容都正常,并且仍然删除 FTP 文件。
如果我删除错误处理程序,Camel不会在出现异常时删除文件。
现在我的问题是,我如何有一个DeadletterChannel错误处理程序,同时在处理失败时阻止Camel删除FTP文件?
您有几个选项可以做到这一点:
delete=true
选项,而是在“成功”场景中自行处理文件的删除。这将相对透明onPrepareFailure
中为DLC定义自己的处理器。参见示例:deadLetterChannel(“jms:dlc”)。onPrepareFailure(newErrorProcessor())
之后,您可以使用getContext()
方法获取camel上下文,并使用getEndpoint()
方法之一获取使用者endpoint。当您拥有endpoint时,您可以看到哪个“processfactory”类与getProcessStrategy
一起使用,并且可以在那里更新delete
标志以避免删除文件。对于此endpoint,还可以使用方法setProcessStrategy
定义自己的“processStrategy”类。请自行查看在您的案例中使用的流程策略类。然后,您可以重写相应的delete方法,如<code>deleteLocalWorkFile</code>,而不执行任何操作您可以在ftpendpoint上设置选项noop=true
。然后该文件将被单独保留。
尽管你会不得不考虑如何在将来跳过拾取文件?为此,您可以使用幂等存储库来跟踪以前处理过的文件。或者另一种方法是在完成等操作后移动文件。
当ftp组件扩展文件组件时,请参阅以下详细信息:http://camel.apache.org/file2
当程序出现错误或者异常时,我们一般会希望在开发时输出报错信息,在生产环境时隐藏详细的信息。 在 imi 中,提供了 Http 服务的错误异常默认处理器支持。 默认 Http 错误处理器:Imi\Server\Http\Error\JsonErrorHandler 指定默认处理器 配置文件中: return [ 'beans' => [ 'HttpErrorHan
我是骆驼新手,有一些关于异常处理的问题。我需要有3重试尝试的消息处理,超过尝试限制后,它需要发送消息到deadletterchannel。如何组合maximumRedeliveries和ErrorHandler?
我是Camel Apache的新手,在异常处理方面遇到了一些麻烦。我要做的是捕捉SalesforceException,然后根据StatusCode采取不同的操作。 例如,当statusCode>=500时,我必须尝试重新传递消息。这是一个技术错误。当statusCode<500时,我必须将请求和响应组合在一起,并将其放在FailureQueue上。
我有一条处理hl7消息的骆驼路线。处理成功后,我希望将其传递给另一个endpointb以进行进一步处理。 但是如果在processHL7中发生任何异常,我有一个catch块来做一些处理。当我进入doCatch并遇到end时,我想停止处理,但这并没有发生。无论发生什么,流都将到达endpointb。当我进入doCatch块时,如何停止?
我的任务是处理路由中所有传入的消息,并将它们保存到数据库中。我的路由从webservice(camel cxf)开始,然后处理到ejb并返回soap响应。 我决定使用驼峰sql组件。就我在记录传入消息方面没有任何问题而言: 但是我不知道如何处理异常并以SOAP消息的形式保存它们。 但它将原始消息保存在数据列中。有谁能帮忙吗?
您需要修复网页抛出的异常和在JavaScript中调试错误。 如果你能得到页面异常和JavaScript错误的细节,在实际工作中非常有用 。当页面抛出异常或脚本产生错误时,Console(控制台)面板会提供明确的可靠信息,以帮助您找到并解决问题。 在Console(控制台)面板中,您可以跟踪异常及跟踪导致异常的执行路径,显式地或隐式地捕获它们(或忽略它们),甚至可以设置错误处理程序来自动收集和处理