spring 集成错误处理不同类型
spring integration error handling different types
我正在使用 spring 集成 XML,想知道处理错误的最佳方法是什么。
我正在使用 s3-inbound-streaming-channel-adapter
连接到 s3,然后从 s3 存储桶转换 csv 文件。
可能发生的潜在错误是:
- 如果文件中的一行无效,则可能会发生转换异常,因此会引发自定义错误:
LineTransformationException
如果在 s3 存储桶上错误地放置了图像文件并且再次出现转换异常怎么办
s3 可能会宕机,可能会得到
原因:com.amazonaws.SdkClientException:无法执行 HTTP 请求:连接到 localhost:4572 [localhost/127.0.0.1] 失败:连接被拒绝
许多已知和未知错误的列表可以继续...
那么最好处理所有这些错误的方法是什么?通过自定义 ErrorHandler
或 exception-type-router
如果通过 ErrorHandler
完成,那么如何应对这么多异常。
是否有一个万能的异常处理程序?
public class 错误处理程序 {
public void handleFailure(Message errorMmessage) {
MessagingException payload = (MessagingException) errorMmessage.getPayload();
LOG.info(">>--- Exception --- " + payload.getCause());
}}
或
<int:exception-type-router input-channel="errorChannel"
default-output-channel="nullChannel">
<int:mapping exception-type="com.api.exception.TransformationException"
channel="transformErrorChannel"/>
<int:mapping exception-type="com.amazonaws.SdkClientException"
channel="clientErrorChannel"/>
</int:exception-type-router>
<int:channel id="transformErrorChannel"/>
<int:service-activator ref="errorHandler"
method="handleFailure"
input-channel="transformErrorChannel"
output-channel="nullChannel"/>
<int:service-activator ref="clientErrorHandler"
method="handleFailure"
input-channel="clientErrorChannel"
output-channel="nullChannel"/>
s3-inbound-streaming-channel-adapter
连同它的 <poller>
可以用 error-channel
配置。默认情况下,轮询错误(以及所有下游)被路由到全局 errorChannel
: https://docs.spring.io/spring-integration/docs/5.0.5.RELEASE/reference/html/configuration.html#namespace-errorhandler
我正在使用 spring 集成 XML,想知道处理错误的最佳方法是什么。
我正在使用 s3-inbound-streaming-channel-adapter
连接到 s3,然后从 s3 存储桶转换 csv 文件。
可能发生的潜在错误是:
- 如果文件中的一行无效,则可能会发生转换异常,因此会引发自定义错误:
LineTransformationException
如果在 s3 存储桶上错误地放置了图像文件并且再次出现转换异常怎么办
s3 可能会宕机,可能会得到
原因:com.amazonaws.SdkClientException:无法执行 HTTP 请求:连接到 localhost:4572 [localhost/127.0.0.1] 失败:连接被拒绝
许多已知和未知错误的列表可以继续...
那么最好处理所有这些错误的方法是什么?通过自定义
ErrorHandler
或exception-type-router
如果通过
ErrorHandler
完成,那么如何应对这么多异常。是否有一个万能的异常处理程序?
public class 错误处理程序 {
public void handleFailure(Message errorMmessage) {
MessagingException payload = (MessagingException) errorMmessage.getPayload(); LOG.info(">>--- Exception --- " + payload.getCause());
}}
或
<int:exception-type-router input-channel="errorChannel"
default-output-channel="nullChannel">
<int:mapping exception-type="com.api.exception.TransformationException"
channel="transformErrorChannel"/>
<int:mapping exception-type="com.amazonaws.SdkClientException"
channel="clientErrorChannel"/>
</int:exception-type-router>
<int:channel id="transformErrorChannel"/>
<int:service-activator ref="errorHandler"
method="handleFailure"
input-channel="transformErrorChannel"
output-channel="nullChannel"/>
<int:service-activator ref="clientErrorHandler"
method="handleFailure"
input-channel="clientErrorChannel"
output-channel="nullChannel"/>
s3-inbound-streaming-channel-adapter
连同它的 <poller>
可以用 error-channel
配置。默认情况下,轮询错误(以及所有下游)被路由到全局 errorChannel
: https://docs.spring.io/spring-integration/docs/5.0.5.RELEASE/reference/html/configuration.html#namespace-errorhandler