将Vert.x HttpClient适配为Feign AsyncClient时无响应问题求助
将Vert.x HttpClient适配为Feign AsyncClient时无响应问题求助
大家好,最近在做Feign和Vert.x HttpClient的适配工作,碰到个头疼的问题想请教下社区的各位!
之前用的feign-vertex库,最后一个能用的版本已经是2年前的了,新版本都有问题没法正常使用。所以我打算直接基于Feign的AsyncClient接口来对接Vert.x的HttpClient。
我自己写了一段适配代码,逻辑看起来不算复杂,但运行后就是拿不到响应。我猜问题大概率出在Vert.x的Future转换成Feign需要的CompletableFuture这个环节上,实在找不到头绪,把代码贴出来大家帮我看看:
object : AsyncClient<Unit> { override fun execute( request: Request, options: Request.Options, optional: Optional<Unit> ): CompletableFuture<Response> { return httpClient .request( RequestOptions() .setMethod(HttpMethod.valueOf(request.method())) .setURI(request.url()) .setHeaders(request.headers().toCaseInsensitiveMultiMap()) ) .compose(HttpClientRequest::send) .compose { Future.all(Future.succeededFuture(it), it.body()) } // 我怀疑这里是不是缺了把Vert.x Future转成CompletableFuture的关键步骤? // 后续还有响应转换的代码没写完,但现在连基础的响应都拿不到 } }
有没有朋友遇到过类似的情况?或者能帮我指出代码里可能存在的问题?麻烦大家了!
备注:内容来源于stack exchange,提问作者Jakub Bochenski
相关产品推荐
相关产品推荐

