问题标签 [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.
spring-integration - 如何在 Spring 集成网关中获取自定义标头值?
这是我在这里的第一个问题。
我的 Web 应用程序正在使用 spring 集成来获取 3rd 方 API 响应。
响应具有以“X-”开头的自定义标头值。X 值为两个。(X-AccessToken-Quota-Allotted,X-AccessToken-Quota-Current)
因此,我在配置 xml 的 header-mapper 中添加了 inboundHeaderNames,如下所示。
下面是一个回应。我可以在 headers 属性中看到 X-AccessToken-Quota-Allotted 和 X-AccessToken-Quota-Current。
[集成] GenericMessage [payload={"type":"commonResponse","serverName":"uslxacd20022use1c.intranet.local","errorMessage":null}, headers={errorChannel=org.springframework.messaging.core.GenericMessagingTemplate$ TemporaryReplyChannel@41208186, X-Request-Id=0ce88cd6-d04b-47dc-b3db-224656fe9090, uri=https://api-server.com/blabla, http_statusCode=200, X-AccessToken-Quota-Allotted=5000 , jsonObjectName= DmsCommonResponseDto, Authorization=Bearer qqdtbhtp5vk2ss69wjpbdfvh, replyChannel=org.springframework.messaging.core.GenericMessagingTemplate$TemporaryReplyChannel@41208186, json__TypeId__=class com.blabla.DmsPhoneRequestDto, requestId=0ce88cd6-d04b-4769090, X- 2246当前=3, id=12072f4b-8403-a328-6a77-aaba935beba2, contentType=application/json, Content-Type=application/json;charset=UTF-8, timestamp=1592791409206}]
几乎每个字段值都映射到 responseDto 的字段,但我不知道如何将 X-custom 标头值映射到 responseDto 的字段。
以下是当前设置。
任何一点点线索也会有所帮助。提前致谢。
spring-security - 如何预授权对 Http.InboundGateway 的访问?
我知道可以将 @PreAuthorize 注释添加到 Rest Controller ......
如何预授权对 Spring Integration Http.inbound 网关的访问?我知道我可以在集成流中添加一个组件并在转换器或服务激活器方法上添加注释,但我宁愿没有单独的对象。
java - 为什么在使用 Java DSL 时必须在入站 webflux 网关上使用 .fluxTransform(f -> f)?
在 Spring Integration 中使用 webflux gateway Java DSL 时,我遇到了失败的回复。它仅适用于前几个请求(具体为<8),之后我收到回复错误:
当我.fluxTransform(f -> f)
在入站网关上使用 或使用非反应式http 出站网关时,即使在具有数千个请求的 jmeter 基准测试中,我也不会收到错误消息。
- 为什么我必须调用
fluxTransform(f -> f)
第一个流程才能使其工作? - 为什么
fluxTransform(f -> f)
我Http.outboundGateway
在第二个流程中使用时它没有工作?
场景
我已经使用四个网关创建了一个路由,用于在远程机器上发出 Web 请求的相当复杂的设置,但我
整合流程一:
入站 webflux 网关 -> 出站 jms 网关
集成流程 2:
入站 jms 网关 -> 出站 webflux 网关
完整的路线如下所示:
客户端 Web 请求 -> 流 1 ->(消息代理)-> 流 2 -> 服务器 Web 请求
spring - @EnableConfigurationProperties(MyConfig.class) 生成的 bean 名称在 spring-integration 中不起作用
我有一个配置类,@ConfigurationProperties
如下所示。我可以systemConfigMap
从类中的 application.yaml进行填充,MyConfig
如下所示
主要课程为
问题是生成的 bean 名称是my-config-a.b.c.config.MyConfig
,我无法在payload-expression
on中使用spring integration http inbound gateway
它,我猜是因为它里面有“-”。
如何为生成的 bean 指定 bean 名称MyConfig
?
编辑:HTTP 网关配置
我想在请求开始处理流程systemConfigMap
时加载这些值。/data
spring-integration - Spring集成HTTP出站网关根据回复内容重试
我正在使用一个分两步工作的 API:
- 它以异步方式开始处理文档,并为您提供用于步骤 2 的 id
- 它提供了一个端点,您可以在其中获得结果,但前提是它们准备就绪。所以基本上它总是会给你一个 200 响应,其中包含一些细节,比如处理的状态。
所以问题是如何为 HTTP 出站网关实现自定义“成功”标准。我还想将它与我已经实现的 RetryAdvice 结合起来。
我尝试了以下方法,但首先在 HandleMessageAdvice 中提供的消息有效负载是空的,其次没有触发重试:
我从 4 年前就从 Artem 那里找到了这个答案,但首先我没有在出站网关上找到回复通道方法,其次不确定这个场景是否已经在新版本的 Spring 集成中得到了改进:http outbound带条件重试(用于检查条件)。
更新
按照 Artem 的建议,我有以下几点:
和建议:
但是现在当我调试doInvoke方法时,有效负载的主体是null。奇怪的是,当我使用 Postman 执行相同的 GET 请求时,正文被正确返回。任何想法?
使用 Postman 响应的正文如下所示:
这是我使用回调从出站网关获得的有效负载:
spring-integration - 如何在spring集成http入站适配器中验证传入的json并返回一个Json响应
我正在尝试设置一个http:inbound-gateway
只接受 json 的。我的 xml 配置看起来像。
我已经看到,从 5.2 版本开始,验证器可用于在发送到通道之前检查有效负载,但我似乎找不到示例。添加validator="myValidator"
似乎验证了 myRequest。
但是,尽管<int-http:request-mapping consumes="application/json"/>
将内容限制为有效的 json 并且 Validator 发出HTTP Status 400 – Bad Request
错误是在 html 中返回的?
如何覆盖它以返回自定义 json 响应?
编辑 1 这是我的完整 xml 配置
我的端点激活器方法看起来像
如果在激活器中引发错误,则错误通道将返回我的自定义 json 响应,否则甚至在记录我在 text/html 中的响应下方得到的消息之前;。
编辑 2 Bellow 是我的验证器类,调用了 looger,如果不存在 msidsn 则触发
我的web.xml
spring-integration - 回复后可以收到原始消息吗
你能帮我做弹簧集成吗?
我有使用 http 将发布请求发送到其他系统的集成流程。
发送后能否得到原始消息,因为我想对成功和错误进行其他操作。
ErrorHandler 只有 HttpClientResponse,但响应正文为空,我需要 originalMessage 来处理这种情况。
与成功响应相同的情况。我没有原始消息信息来进行下一步操作。
spring-integration - Spring 集成 Java DSL 入站和出站错误处理
我正在尝试构建一个集成解决方案
我的出站网关定义为
requestFactory 在哪里
快乐的道路工作正常,我面临的问题是不那么快乐的道路。
- 当 Api 调用返回错误响应时 .transform(exetrnaldto to dto) 失败并且客户端得到 500
- 我也想将错误响应 json 转换为我的 json
- 我如何处理错误情况。
我的问题是;
- 如何处理错误。
- 在错误情况下如何停止流不转换
- 如何从出站向客户端发送状态码作为响应(这很重要)
- 如何处理典型的@Controller Advice @ErrorHandler 机制或类似的错误。
希望Garry能看到这篇文章,找不到任何答案,我翻了很多书和论坛,感觉 Java DSL 还没有被广泛使用或评论。
spring-integration - 如何处理 HttpRequestExecutingMessageHandler 中的超时错误?
我正在使用HttpRequestExecutingMessageHandler
连接外部服务。这是我的代码:
这会产生以下异常:
处理此超时的正确方法是什么?