java - spring集成模式 validator 的使用?

标签 java spring spring-integration

我是 Spring 集成的新手。我有以下要求。

  1. 轮询文件夹(文件系统)
  2. 获取 XML 文件
  3. 针对 XSD 进行验证
  4. 如果无效,请将其移至其他文件夹。
  5. 如果有效,则调用服务激活器,该激活器会将 xml 文件作为输入发送到 Rest ful Web 服务。

我有以下代码:

<int-file:inbound-channel-adapter auto-create-directory="true" channel="contentChannel"  id="inBoundChannelAdapter" directory="${someFolder}" prevent-duplicates="true">
            <int:poller max-messages-per-poll="1" fixed-rate="10000"/>

        </int-file:inbound-channel-adapter>

        <int:channel id="contentChannel"/>

        <int-xml:validating-filter id="schemaValidator" output-channel="someOutPutChannel" throw-exception-on-rejection="false" schema-location="${schema.location}" input-channel="contentChannel" discard-channel=""/>

这里我坚持以上 4 点和 5 点。请帮助我如何实现它?

谢谢!

最佳答案

步骤 4+5 正是验证过滤器的丢弃 channel 和输出 channel 的用途。只需将出站 channel 适配器与丢弃 channel 连接即可将无效文档写入文件夹。将您的服务激活器连接到输出 channel 。

关于java - spring集成模式 validator 的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13723687/

相关文章:

java - 如何禁用tomcat 7控制台调试信息

java - 如何从特定位置将数组发送到方法

java - 为什么在android应用中使用jdbc是错误的?

java - 我可以使用基于文件的上下文工厂 com.sun.jndi.fscontext.RefFSContextFactory 构建目录结构 (JNDI)

java - 无法从 JSON 转换;意外字符 ('f'(代码 102)): Expected space separating root-level values at (String )"5f19a7e99933db43cb23e83d"

java - Spring集成websocket抛出 "' outputChannel'或需要 'outputChannelName'“异常

java - Spring 集成: Allocate Space when sending file to FTP

java - Websphere 上的 session 管理

spring - TilesConfigurer 已弃用?如何在 Spring MVC 3.1 中使用tile2.2?

spring - 如何在我的 Spring Cloud Stream 项目中将传入的 header 映射为 String 而不是 byte[]?