我正在尝试构建一个集成解决方案
IntegrationFlows
.from(inBoundGateway)
.enrichHeaders(enrichHeaders())
.transform(dto to externaldto)
.handle(outBoundGateway, advice -> advice.advice(retryAdvice()))
.transform(exetrnaldto to dto)
.get()
@Bean
RequestHandlerRetryAdvice rhra
rhra.setRecoveryCalBack(errorMessgaeRecoverer());
@Bean
ErrorMessageSendingRecoverer errorMessgaeRecoverer
我的出站网关定义为
Http.outboundGateway(uri, resttemplate)
...
.get()
new RestTemplate(requestFactory)
requestFactory 在哪里
TrustStratgey ts = new TrustStratgey(){
public boolean isTrusted(...){
return true;
}
}
SSLContext context = SSLContexts,custom().loaddTrustMaterials(null, ts);
SSLContextFactory cf = new SSLContextFactory(context, new NoopHostnameVerifier());
HttpClientBuilder clientBuilder ..
clientBuilder.setSSLSocketFactory()
快乐的道路工作正常,我面临的问题是不那么快乐的道路。
- 当 Api 调用返回错误响应时 .transform(exetrnaldto to dto) 失败并且客户端得到 500
- 我也想将错误响应 json 转换为我的 json
- 我如何处理错误情况。
我的问题是;
- 如何处理错误。
- 在错误情况下如何停止流不转换
- 如何从出站向客户端发送状态码作为响应(这很重要)
- 如何处理典型的@Controller Advice @ErrorHandler 机制或类似的错误。
希望Garry能看到这篇文章,找不到任何答案,我翻了很多书和论坛,感觉 Java DSL 还没有被广泛使用或评论。