问题标签 [spring-integration-http]

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 投票
1 回答
37 浏览

spring-integration - 在 HTTP 出站网关之后保留原始请求 POJO

我正在使用 Spring 集成设置工作流程。基本上是这样的:

轮询数据库→拆分行→HTTP发布到Web API→过滤器:(如果OK)→写入文件→从DDBB删除行

我正在使用 JDBC 轮询器和 HTTP 出站网关。我已经设法读取数据库,拆分结果以逐一处理行,然后使用 json 将数据发布到休息服务。

但在那之后,在 http 网关的输出中,我得到了 POST 结果。

在这个用例中,我需要将原始对象发送到 Http 网关,因为我必须将它的一些数据写入文本文件,然后使用它的 ID 从表中的原始记录中删除.

有什么方法可以让 HTTP 网关输出同时包含 POST 结果和它在输入中接收到的原始 POJO?

0 投票
1 回答
43 浏览

spring-integration - EnpointSpec 在 Spring Integration Java DSL 中失败

对于上述代码,链接:/test 有效,但 /failing-test 无效。我在 chrome 上收到“端点已停止”。

可能是什么原因?

0 投票
1 回答
773 浏览

java - Spring Integration 从 REST 服务获取分页结果

我正在与 REST 服务集成,想法是它marketingCategoryOutboundGatewayHttpRequestExecutingMessageHandler. 网关向 REST 服务发出请求并将其响应推送到marketingCategory通道。网关本身由marketingCategoryPollerMessageSource使用makeTriggeringMessage工厂方法创建的消息触发。

问题是服务返回分页结果。除了我已经拥有的服务激活器之外,我会在频道上收听一些东西marketingCategory,检查是否响应并将具有由创建的递增页码的新消息推makeTriggeringMessage送到marketingCategoryPoller频道,以便代码将在循环中旋转,直到它获取来自 REST 服务的所有页面。

Spring Integration 是否允许这样的过滤器在输入通道上接收一条消息,根据条件对其进行测试并在条件为真时将新消息推送到输出通道?

编码:

0 投票
1 回答
189 浏览

spring-integration - 如何将 ID 设置为 http 入站网关(DSL 样式)?

在我的 Spring Boot 应用程序中,我有以下入站网关(Java DSL):

我认为.id ("upperCaseGateway")是为网关设置“id”的部分。

另一方面,我正在尝试以稍微不同的 DSL 样式实现另一个 HTTP 入站网关,如下所示:

我的问题: 在创建 http 入站网关的第二种方式中,如何为网关设置一个 ID,值为“ getPersonsGateway ”?我看到在第一种风格中,这可以通过简单的.id("upperCaseGateway")调用来实现。

任何指导将不胜感激!

真诚的,巴拉特

0 投票
1 回答
82 浏览

spring-integration - 对 HttpOutboundGateway 进行轮询

如何轮询上述内容,以获取有效负载以进行进一步处理

0 投票
1 回答
2575 浏览

spring-integration - 如何使用 SpEL 读取 Spring 集成路由器中的有效负载和标头内容

我项目中的技术

作为我的 Spring 集成项目的一部分(带有入站 http 网关的 REST API,它接受 XML 输入并产生 XML 输出),我正在编写以下组件:

  1. 一个服务激活器,根据其 XSD 对传入的 XML 执行基本验证。
  2. 如果验证成功,将使用名为“isError”的布尔实例变量/属性设置为 true 来构建 POJO(构建器模式 Java 对象)。
  3. 如果验证不成功,POJO(构建器模式 Java 对象)将使用名为“isError”的布尔实例变量/属性设置为 false。
  4. 构建 POJO 后,将其包装成 Message 并发送到输出通道。
  5. 有一个路由器组件从输出通道获取消息,并根据有效负载/POJO 中的“isError”属性的值决定目标路由/通道。

POJO 类的草稿(实际上,POJO 将具有更多属性,但对于我们的示例,保持简短):

XML 中的验证器服务激活器组件:

XML 中的路由器组件:

终于来到我的问题,在这个“路由器”中,

  • 问题 1) SpEL 表达式 (payload.isError) 似乎有问题,因为我在调用路由器期间遇到了一个异常,如下所示:

    org.springframework.expression.spel.SpelEvaluationException:EL1008E:在“com.amb.restSample.core.model.Composite”类型的对象上找不到属性或字段“isError” - 可能不是公共的或无效的?在 org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:217) ~[spring-expression-5.1.5.RELEASE.jar:5.1.5.RELEASE] ... ...

你能告诉我如何访问复合 POJO 中的布尔“isError”属性吗?这是假设发送到路由器的消息是消息

  • 问题 2) 如果我希望在将“isError”属性作为消息头(字符串)发送到路由器之前(而不是将其用作复合 POJO 中的布尔属性),是否有访问它的表达式?
0 投票
1 回答
364 浏览

spring-integration - Spring Integration Router中的SpEL可以使用Java的String类方法吗

这是如何使用 SpEL 在 Spring 集成路由器中读取有效负载和标头内容的扩展问题

我项目中的技术

作为我的 Spring 集成项目的一部分(带有入站 http 网关的 REST API,它接受 XML 输入并产生 XML 输出),这是我的问题的设置:

  • 有一个基于 Builder 模式的 Java 对象(例如MyPOJO),它是流中的有效负载。
  • MyPOJO有一个字符串属性/实例变量(比如,String response)以及一个 getter 和 setter。
  • 在流程中的某个地方,MyPOJO构建并response设置。
  • 在里面response,有一个关键字/特定的文本将决定流程的进一步进程。

这就是说,是否可以编写一个路由器(使用 XML 配置)来检查response内部是否Message<MyPOJO>包含该关键字/特定的文本片段以确定下一步要去哪里?

举例来说,像这样:

当我这样做并启动应用程序时,错误是:

具体来说,该expression="payload.getResponse().contains("keyword")"部分似乎有一个问题得到解决,这可能与周围的引号有关keyword

非常感谢您对此的任何帮助。

真诚的,巴拉特

0 投票
0 回答
149 浏览

java - Spring Integration:如何全局配置 header-mapper

我有一个应用程序监听不同的事件源。对于这些事件中的每一个,我都构建了一个 IntegrationFlow,在这里我只是对过滤和转换等操作进行管道化,最后通过 HTTP 请求将此消息发送到另一个 API。

所有这些事件都带有我也想传播的自定义标头。

我设法通过配置 DefaultHttpHeaderMapper 来传播它们(它已经在传播标准的 http 标头,如“Accept”或“Content-Type”),但问题是我需要对每个 IntegrationFlow 执行此操作。

考虑这个例子:

有没有办法配置这个 DefaultHttpHeaderMapper,但全局?

0 投票
1 回答
32 浏览

spring-boot - 我们如何设计一个 spring 集成系统,从第一个调用响应开始,我们必须决定要遵循哪个网关

**Spring 集成:**需要设计一个系统,从第一次调用响应开始,就决定在 Spring 集成中去哪个网关。

试图将第一个网关实现为公共呼叫,然后将另一个网关实现为隔离不同的网关呼叫。因为我们需要网关进行第一次交互。寻找比这更好的设计。

0 投票
1 回答
421 浏览

spring-integration - 如何在 spring-integration (DSL) 中公开“Content-Disposition”?

为了下载文件,我会将“Content-Disposition”添加到我的 responseHeader 中,但它不起作用。

响应不会有任何添加的属性。

我得到什么:

缓存控制:“无缓存,无存储,最大年龄 = 0,必须重新验证”
内容类型:“应用程序/json”
过期:“0”
编译指示:“无缓存”