问题标签 [spring-integration]

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.

0 投票
2 回答
9911 浏览

spring-integration - 使用 SPeL 的 Spring Integration 过滤器表达式

我有一个包含允许值列表的配置 bean:

我已经使用名为“someValue”的字段填充了我的邮件标题,并且我想使用过滤器元素来排除 someValue 不在允许值列表中的邮件。

我的上下文如下所示:

但我得到:SpelParseException: EL1041E:(pos 1): After parsing a valid expression, there is still more data in the expression: 'comma(,)'

0 投票
1 回答
3312 浏览

spring-integration - Pub-Sub 错误处理策略

这是我的频道设置:

  1. 一个 jdbc 消息存储支持的队列
  2. 将队列连接到发布-订阅通道的桥接器
  3. pub-sub 通道上配置的 poller 是事务性的

现在,当任何一个订阅者出现异常时,事务就会回滚,并且消息会永远重试。该消息再次被所有订阅者再次处理。如果这至少在订阅者中是一个永久异常,则该消息不会被其他订阅者处理。

这里最好的异常处理策略是什么?
我更喜欢对订阅者进行异常处理,即只有失败的订阅者会重试,其他订阅者将处理消息并继续。

这如何在spring集成中实现?

更多细节在这里..

  1. 如果轮询器是事务性的并且消息在至少一个订阅者中处理失败,则消息将回滚到消息存储并重试。我还为errorChannel 配置了一个jdbc 消息存储。每次消息处理失败时,消息都会回滚到原始消息存储,并且错误通道消息存储每次重试都有一个条目。

  2. 如果轮询器是非事务性的,并且消息在第一个订阅者中处理失败,那么消息将被放入错误通道,但第二个订阅者永远不会收到消息。

似乎有一些根本性的错误..是我的配置吗?

0 投票
0 回答
3353 浏览

spring - Spring集成文件读取问题

听起来像弹簧整合是惊人的,我是弹簧整合的新手。我有一个要求使用弹簧整合

  1. 读取一个 txt 文件(来自 Source 文件夹)
  2. 做一些验证
  3. 如果验证成功 - 写入成功文件(在成功文件夹中)
  4. 如果验证失败 - 写入失败文件(在错误文件夹中)

我的配置文件是这样的

我的 checkFlatPackCVSParserWrapper 类是

sampleFileFormat.xml 是

我的 ErrorChannelWriter 是

我的验证课程是

我的 ListToStringTransfomer 是

我的文件包含两个字段

在这里,如果我的文件格式错误,那么该记录正在移动到错误文件中,但是如果我的验证类失败(例如:我正在检查我的名字是否等于 Maya,那么我将抛出运行时异常),该记录不会移动进入错误文件。我将如何实现我的任务建议

0 投票
1 回答
1195 浏览

spring-integration - 针对 jdbc 支持的队列通道的 spring poller - 集群模式

在以下场景中,一条消息是否会被处理两次(意味着在超过 1 个集群节点中)?1. 一个 jdbc 消息存储支持的队列通道,包含待处理的消息 2. 在消息消费者端配置轮询器来处理消息

jdbc 消息是否存储锁定消息一旦被选择进行处理以避免消息在另一个集群中被重新处理?

0 投票
3 回答
14120 浏览

java - Spring Integration:具有默认输出通道的基于内容的路由器?

如果表达式值与任何映射都不匹配,我想使用 Spring Integration 来实现使用默认输出通道的基于内容的路由器。这是我的bean定义:

但是,似乎从未使用过默认输出通道。如果表达式计算结果为“baz”,则路由器似乎正在寻找名为“baz”的频道,而不是路由到“channel_default”频道:

使用 XML 命名空间是我想要的,还是我需要编写自己的实现?

0 投票
2 回答
4738 浏览

java - How to Route a Message based on content using Spring Integration 2.0.5?

I started out using the si-xml:xpath-router but I ran into a roadblock. Am I using correct router but wrong implementation? If I'm using the incorrect router, which one should I be using, i.e. default router, payload-type, or maybe a simple SpEL expression?

Use Case:

I need to route a message based on payload content. The request contains an element and the 'action' I need to perform is contained in one if its attributes, see attribute "command" below.

Example inbound request (comes from a web-service).

The psuedocode was:

  • marshall message.
  • route based on value, via xpath-router

but I'm getting the error:

unsupported payload type [javax.xml.transform.dom.DOMResult]


In order to resolve this, I have tried:

  • adding the attribute "result-transformer" to the transformer bean using ResultToDocumentTransformer. error= failed to resolve channel name ''

  • adding attribute "result-type" to the transformer using StringResult. error = unsupported payload type [org.springframework.xml.transform.StringResult]

  • adding both of the above. error = failed to resolve channel name ''

  • adding the attribute "evaluate-as-string" using true. error = unsupported payload type.


Original Configuration file below:

0 投票
1 回答
4273 浏览

spring - Spring Integration:使用聚合后再次拆分消息?

在我的 Spring Integration 驱动项目中,我有一个拆分器和有效负载路由器,用于将我的数据发送到各种转换器。然后将新的“转换”对象传递回聚合器并进行处理。

现在我想拆分我的聚合结果,以便正确保存它们,因为我需要将一些对象路由到单独的出站通道适配器。为此,我在聚合器之后添加了第二个拆分器;但似乎只有聚合集合中的第一个元素被传递给路由器。

这是我目前的流程:

还有我的聚合器代码:

我究竟做错了什么?我是否正确使用我的聚合器?

注意:如果我完全删除聚合器和第二个拆分器,则流程的其余部分可以完美运行。

0 投票
1 回答
267 浏览

spring - 同步 JMS 调用所用的日志时间

在一个 spring 集成项目中,我有一个同步发送和接收消息的出站网关。我想记录这种操作所花费的时间。

我尝试搜索但只能找到使用 AOP 和 PerformanceMonitorInterceptor 来跟踪方法的示例。

0 投票
1 回答
508 浏览

spring - Spring Integration JMS Outbound 适配器事务控制

为了在启用事务的 jms 下实现高性能的消息生产,需要控制每个事务上发送的消息量,数量越大性能越高,

是否可以使用 spring 集成以这种方式控制事务?

有人可能会建议使用聚合器,但这违背了目的,因为我不想让一条消息在队列中包含 X 条较小的消息,但实际上在我的队列中包含 X 条消息。

谢谢 !

0 投票
1 回答
3428 浏览

spring-integration - 泛化 http:outbound-gateway 回复通道

给定一个网关来处理对 ws 的服务调用。我的目标是提供http:outbound-gateway's reply-channel使用header-enricher,因为我将添加多种方法gateway,我只想使用 1http:outbound-gateway

我目前可以收到对 groovy 脚本 (2) 的响应,但它似乎不想将结果返回给调用服务的实际方法

任何帮助,将不胜感激。谢谢!