问题标签 [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 - 使用建议处理 MessageHandlingException 并继续流程 spring 集成 dsl
我正在尝试抑制从 http 出站网关为非 2XX 状态代码生成的 MessageHandlingException,并优雅地将控制权返回给父流,以便在成功流中按照预期在回复通道上返回具有原始有效负载的消息。
原始代码:
我尝试使用errorHandler
Http,但它提供了客户端响应的句柄,并且原始有效负载不是其中的一部分。
也尝试过表达建议路线。
如果没有成功和失败通道,建议不会将控制权归还,但目的是将控制权归还给父级。
可能最简单的方法是用 .handle 包装try.. catch
并捕获 MessageHandlingException 并将其传播@ExceptionHandler
并转换它。
有没有办法可以用建议或errorChannel来完成,在@MessagingGateway
http出站网关的404之后没有调用它的errorChannel。
上面的代码是另一个流程的一部分,我正在独立测试这个流程。
集成流中是否存在错误通道?
更新1:
能够弄清楚为什么 errorChannel on@MessagingGateway
没有从测试中被调用,它仅在调用完整流时才被调用,而不是仅inquiry()
使用 DirectChannel 的方法。
现在 errorChannel 正在工作,使用异常之前的有效负载状态设置自定义标头,并从 failedMessage 标头中访问它。
它现在按预期工作,并且永远不会向响应中抛出错误。感觉这是一个解决方法..
有没有办法在建议中更好地处理这个问题?
编辑1:
代码不完整我试图让它工作
由于我没有从建议中指定通道流,因此流无处可去,需要一些类似的东西,.defaultOutputToParentFlow()
以便它使用Message
.
回答 :
它有效,但唯一的问题是,我仍然需要自定义标头来获取原始有效负载,而不是请求失败有效负载/正文才能继续进程。
这就是我正在寻找的。可能会更改变量名称,因为建议将返回成功,而不仅仅是失败案例。
java - Http outbound-gateway:有没有办法处理非 HTTP 错误,特别是“无连接”错误?
我的网关可以HTTP
通过自定义错误处理程序(扩展DefaultResponseErrorHandler
)处理错误。但是如果出现连接失败错误,网关会保持沉默。
网关架构:
有没有办法处理此类错误?提前谢谢。
java - 多部分请求无法按预期进行弹簧集成
我有两个休息服务和一个听众
- 服务A
- 服务乙
- 监听器 L1
- 第 1 步 - 侦听器 L1 从本地读取文件并将多值映射发送到服务 A。服务 A 从数据库中检索一些文档并将其作为字节返回给侦听器 L1。
第 2 步 - 侦听器 L1 然后将另一个多值映射发送到服务 B 并保存文档。
步骤 1 使用 MultiValueMap 按预期工作,当我尝试使用相同的过程将文档字节发送到服务 B 在步骤 2 中 - 我收到无法写入请求:没有为请求类型找到合适的 HttpMessageConverter [org.springframework. util.LinkedMultiValueMap] 和内容类型 [application/octet-stream]。我正在遵循相同的程序,但仍然遇到问题。
请在下面的代码示例中找到并告诉我如何解决此问题。
Listener1.java
}
弹簧集成 xml
服务一:
服务乙:
我试过通过java直接通过rest模板发送它,效果很好。但我希望结构保持一致,并通过 spring 集成 xml 来完成。我正在使用 spring boot 2.0.2 BOM。
spring-integration - MarshallingWebServiceOutboundGateway 第一次请求占用太多
我们有很多可以用来连接的soap服务,每次第一次连接到同一个服务都需要花费大量时间从集成开始,随后的请求会迅速减少60%的响应时间。
解析JAXB绑定初始化
这需要大量的第一个请求来扫描所有内容并创建编组器。
但,
一旦 Bean 被初始化,它就可以快速处理少量请求。当服务流空闲一段时间并且请求再次开始流动时,MarshallingWebServiceOutboundGateway 滞后非常糟糕。
Jaxb2Marshaller 是静态的,在这种情况下它应该停止重新初始化。
任何输入表示赞赏,可能在初始化时做错了。
谢谢
spring-data-jpa - Http inboundGateway 缓存 jpa 结果
如何缓存来自处理程序的 Jpa 结果?我尝试搜索一些类似的场景,但我找不到如何在 DSL 中执行此操作。下面是我的示例代码..
}
spring-integration - 使用带有 Spring 集成的 http 下载文件
从 .NET 开始涉足 Java 已经很长时间了。
我正在寻找有关如何定期下载文件、从中读取文本然后使用 Springs 集成库和基于注释的方法根据读取采取一些行动的示例。
我想从运输提供商那里提取 GTFS 格式的 zip 文件。此提供程序会生成一个简单的文本文件,其中包含一个时间戳来指示上次发布时间。
具体来说,数据的生产者在以下位置发布了一个文本文件:
这个文件有一个简单的时间戳来指示他们的数据文件最后一次发布的时间。
然后是数据:
我试图找到一些关于如何轮询“已发布”文件的示例。基本上我想定期下载文件并检查时间戳以确定是否应该下载时间表。
我见过的大多数示例都是使用基于 XML 的配置和 spring - 我几乎没有坚持基于注释。我还看到了使用 FTP / SFTP 下载文件的示例。
我需要使用 http 并且还需要包含基本授权(在标题中)。
这是我所得到的。我不确定如何接线?
来自 Spring Integration 文档 - 这就是我应该如何声明出站网关(我认为这就是我需要的?)
现在的问题是什么?我需要 HttpRequestExecutingMessageHandler 将流(文件)保存为本地文件,以便我可以读取内容并采取其他措施?
spring - 如何在 Spring Integration 中使用来自 int-http:inbound-gateway 的数据设置 SOAP Envelope Header?
我尝试构建一个简单的 Spring 集成项目,在该项目中我得到一个 REST 请求并将其转换为 SOAP 请求。就像是:
但是 REST 请求中的一些信息需要放入 SAOP 信封头而不是信封正文。例如。
休息请求:
SOAP 请求应该是:
我怎样才能做到这一点?转换器仅创建肥皂主体,而在拦截器或标头映射器中,我不再有原始请求。有没有办法做到这一点?
spring-boot - 异常启动 SpringBootApplication - 无法启动 Web 服务器
下面是启动 SpringBoot 应用程序的堆栈跟踪。这是一个 Springboot + Spring Integration 应用,同样使用 mybatis for jdbc。似乎正确加载了所有属性文件。任何关于如何解决这个问题的指示都会很棒。我已经尝试过 maven clean install 来查看是否有任何 jar 损坏但有同样的问题。
下面还有 pom.xml
spring-integration-http - HTTP 出站网关 - 依赖于消息的 RestTemplate
我想根据消息配置 HTTP 出站网关将使用的 RestTemplate(例如,从有效负载中获取身份验证信息)。有没有办法实现这一点,最好是使用 Java DSL?
API 似乎允许基于 Message 的可配置 URI,但是 RestTemplate 呢?
spring - Spring 集成 http-inbound-gateway / RequestMappingHandlerMapping
我是 Spring 集成的新手。我正在尝试使用 http-inbound-gateway 构建一个简单的应用程序。下面是我得到的运行时异常。
下面是代码文件。
POJO
服务
}
服务激活器
}
存储库
请帮助我,我正在尝试解决为什么会出现异常但无法弄清楚的解决方案。提前致谢。
集成文件。