我想使用一个异步伪客户端(io.github.openfei和notspring-cloud-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,但找不到任何TypeAdapter。我无法相信没有这样的TypeAdapter,而我是唯一一个面临此问题的人。
使用Jackson作为解码器,我得到另一个错误:
Feign Unrecognized token 'hello': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
我在stackoverflow上找到以下相关问题
但这些都无济于事。
PS.:HTTP请求使用JavaHTTP客户端工作正常。
1条答案
按热度按时间7rtdyuoh1#
正如在相应的GitHub问题中所讨论的,这似乎是Feign的一个bug,在12.0版本和更新版本中得到了修复。