spring - 使用<int-xml :validating-filter>时捕获异常

标签 spring exception error-handling spring-integration

我从队列中提取数据,然后使用 int-xml:validating-filter 验证输入有效负载。我设置了 throw-exception-on-rejection =“true” ,以便引发异常。

我需要掌握异常消息(验证错误)以及输入有效负载。您能否建议可用于捕获此数据的选项?

<int-jms:message-driven-channel-adapter   id="jmsIn"    
destination="requestQueue" channel="orderChannel"/> 

<int-xml:validating-filter id="validatingFilter"
    input-channel="orderChannel"
    output-channel="validOutputChannel"
    discard-channel="errOutputChannel"                             
    schema-type="xml-schema"
    throw-exception-on-rejection="true"         
    schema-location="OrderProcessing/order.xsd"/>

最佳答案

您是否担心尚不清楚,是否可以捕获该异常。
XmlValidatingMessageSelector中的代码如下所示:

if (this.throwExceptionOnRejection) {
    throw new MessageRejectedException(message, "Message was rejected due to XML Validation errors",
            new AggregatedXmlMessageValidationException(
                Arrays.<Throwable>asList(validationExceptions)));
}

因此,该MessageRejectedException具有所需的message作为验证失败的原因。并且所有验证错误都表示在该AggregatedXmlMessageValidationExceptioncause MessageRejectedException中。

关于spring - 使用<int-xml :validating-filter>时捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38444321/

相关文章:

c# - 处理源自线程的错误的标准方法

java - Java 中的 Servlet/过滤器特定异常处理

asp.net - 避免在我的Telerik控件中尝试/捕获 hell

c - 在存储**过程**中检测到相同的错误,但在存储**函数**中未检测到

java - Spring Cron 表达式 "*/5 * * * * ?"的含义

java - 按示例查询 Spring 数据 - 在子句中?

java - 如何使用 java config 而不是 XML 声明存储库填充器 bean?

c# - Mvc .Net 从异步方法中捕获异常

c# - 如何显示来自非 GUI 相关类的 GUI 应用程序的错误消息?

java - Spring Boot 分段上传获取空文件对象