我想使用异步模拟客户端(io. github.openfeu而不是spring-cloud d-starter-openfeign)来调用我的REST Api。这是我的代码:
interface FeignClient {
@RequestLine("GET /") CompletableFuture<ResponseEntity> hello();
}
FeignClient feignClient = AsyncFeign.builder()
.decoder(new GsonDecoder())
.target(FeignClient.class, "http://localhost:8080");
assertEquals("hello", feignClient.hello().get());
这也是官方文件(https://github.com/OpenFeign/feign)上的说法。
使用Gson作为解码器,我得到以下错误
Decode Failed making field 'java.util.concurrent.CompletableFuture#result' accessible; either change its visibility or write a custom TypeAdapter for its declaring type
我试图为ComletableFutures找到一个TypeAdapter,但我找不到。我不敢相信没有这样的TypeAdpater,我是唯一一个面临这个问题的人。
使用Jackson作为解码器,我得到另一个错误:
Feign Unrecognized token 'hello': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
我在stackoverflow上发现了以下相关问题
但这些都没有帮助。
PS:HTTP请求使用JavaHTTP客户端工作正常。
正如相应的GitHub问题中讨论的那样,这似乎是与在12.0及更高版本中修复的飞行的bug。