问题标签 [spring-integration-dsl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-integration - Spring Integration DSL 已弃用的类用法
我在这个版本中使用 spring 集成和 java-dsl 依赖项。
- 弹簧集成-jdbc- 5.0.0M6
- 弹簧集成-ws- 5.0.0M6
- 弹簧集成-http- 5.0.0M6
- 弹簧集成-jmx- 5.0.0M6
- 弹簧集成核心- 5.0.0M6
- spring-integration-java-dsl- 1.2.2RELEASE
由于新的 JdbcMetadataStore,我必须使用 5.0.0M6 版本。
上周,我使用了 spring 集成 4.3.11RELEASE 和 java-dsl-1.2.2RELEASE 并且我的应用程序正常工作。
在升级过程之后,会抛出这个运行时异常:
IntegrationFlowBeanPostProcessor 类定义中有 2 个,我的应用程序可以使用它:org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor
和下面的代码,它抛出类未找到异常:
另一个类在这个包中:org.springframework.integration.config.dsl
它不使用 IntegrationEvaluationContextAware。
但是我的应用程序可以使用第一个。
这可能是什么原因?
谢谢
spring-integration - 使用 Spring DSL 构建 Spring 集成发布策略
我是 Spring 集成的新手。我正在尝试使用文件拆分器从文件中拆分消息,然后使用 .aggregate() 构建单个消息并发送到输出通道。我将标记设为 true,因此 apply-sequence 现在默认为 false。我使用enrichHeaders 将correlationId 设置为常数“1”。我无法设置释放策略,因为我没有保留序列结束。这是我的代码的外观。
任何帮助表示赞赏。
spring-boot - 如何解决“不支持的消息有效负载类型”
我被卡住了......应用程序从某个目录读取 *.json 文件,将它们转换为 MyObject 类对象。如果类的类型为“PEN”,它将另存为对象。
ObjectType 是枚举:
我有下一节课:
应用程序不保存对象。如何管理与“不受支持的消息有效负载类型 [lhsite.MyObject]”相关的问题。我收到下一个错误:
spring-integration - 基于下一条消息内容的 Spring Integration 聚合器
我必须读取一个文件并根据第一列拆分每一行和组行,当第一列值发生变化时,我必须释放前一个组。这可以在 Spring 集成 DSL 中完成吗?
这是文件的外观,并且已排序:
输出应该是x = 1, 2, 3和y = 4, 5, 6的两条消息。由于这没有任何其他关系,关于何时应该对消息进行分组,我可以一击就分组消息吗下一个不匹配的记录?在这种情况下,当我在第 4 行点击“y”时,将之前的“x”消息分组并释放它?是否可以使用自定义聚合器?
xml - 在 Spring 集成中的 xml 配置中使用“int”表示什么?
我目前正在阅读 spring 集成主题。在spring-integration的XML配置中遇到了一个符号/前缀->“int”。
任何人都可以帮助我理解它吗?我也在某个地方看到使用了“si”。这些前缀究竟指定了什么&它们是特定于弹簧集成的吗?提前致谢!
java - 如何在 Spring Integration 中轮询时根据主题过滤电子邮件
我想根据主题对电子邮件进行投票。
如果我们想轮询主题为“Test”的电子邮件,下面的代码会获取所有电子邮件。但我们需要过滤主题为“Test”的电子邮件。
如何根据主题进行过滤?
我正在使用 pop3Channel 并尝试使用过滤器。但是不确定如何找到解决方案。
spring-integration - Spring 集成 DSL:配置仅在参数匹配时处理的处理程序
我正在使用 Spring Integration DSL 配置。是否可以添加方法引用处理程序,以便仅当消息有效负载与处理程序参数类型匹配时才调用处理程序?
例如:在下面的代码中,如果 payload 是MyObject2
,Spring 会在 处抛出 ClassCastException handleMessage
。相反,我想做的是绕过handleMessage
并被handleMessage2
.
spring-integration - Spring Integration DSL:处理 FileSplitter START/END 标记有效负载
我想设置这样的集成流程:
文件分割器:
输入的类型为File
。文件很大,所以我想逐行流式传输内容,处理它们并在最后删除文件。现在的问题是我必须检查并忽略链上所有处理程序方法中的文件 SOF、EOF 标记有效负载。如果不检查每个 doStuff 方法中的类型,是否有不同的方法?(我认为建议可能有用但还没有尝试过)
jdbc - 如何通过 spring 集成向 kafka 通道和 jdbc 发送消息?
我们正在尝试从 jdbc 源进行轮询,聚合消息,然后将聚合器的输出发送到 kafka 流和 jdbcMessageHandler (以更新我们轮询的行,以便它们不再被轮询。实际上是单独的表格)。我们正在使用 IntegrationFlow DSL。轮询和聚合工作正常。多个输出/源/通道/处理程序的输出不起作用。
我们当前的流程如下所示:
这是我们的投票来源:
jdbcMessageHandler 就是这样:
this.output 就是这样:
它通过 @EnableBinding(Source.class) 映射到我们的 application.yml 中的 kafka 主题:
我们的大部分属性都定义在 application.yml 文件中,我们使用这些属性和注释而不是 XMl 配置。
有了上面的内容,它可以很好地写入 kafka,但没有到达 jdbcMessageHandler。
我这样做的时候工作过(在聚合器之后):
但这是错误的顺序;我们要确保首先将消息写入 kafka,然后更新跟踪已成功轮询哪些行的表。
jdbcMessageHandler 简单地包装了一个使用来自消息的值的 INSERT 语句,所以我假设有多种方法可以做到这一点。jdbcOutboundGateway 是一种方式吗?看起来这是为了进行另一个查询并返回一个结果以进行进一步处理,这不适合我们的用例。
还建议使用轮询来更新,因为我们使用轮询作为我们的来源。我调查了这个。我认为这也行不通,因为它似乎在轮询后立即进行更新,甚至在轮询结果被处理之前,所以在最终聚合消息发送到 kafka 之前进行更新的时间也有同样的问题.
编辑:我尝试了下面的答案,所以当前流程是这样的:
并在启动时收到以下错误:
我调试并进入了 IntegrationFlowDefinition 上的 .handle() 方法,发现传递的对象以某种方式转换为 DirectChannel,我不明白。
spring - 将adviceChain 添加到StandardIntegrationFlow 以在消息处理程序上设置CountDownLatch
我正在尝试通过CountDownLatch
an和. 这样做的原因是要监视此集成流中的消息处理程序是否被调用并完成了他的工作。org.springframework.integration.dsl.StandardIntegrationFlow
adviceChain
BeanFactoryPostProcessor
这里有一个不使用 Spring Integration 的 Java DSL 的解决方案:spring-integration unit test outbound-channel adapter。但遗憾的是,由于 Java DSL 和StandardIntegrationFlow
. Gary Russels 解决方案如下所示:https ://gist.github.com/garyrussell/5481779 。我的例外是:
集成流程如下所示:
我需要CountDownLatch
在.handle()
部件中添加一个,从而使我能够询问锁存器是否处理程序已完成其工作。
任何想法如何实现这一目标?