使用 Feign 和 Spring MVC 时对 ResponseEntity 进行编码和解码?

tro*_*ble 2 spring-boot jhipster spring-cloud spring-cloud-feign

我正在尝试使用动态伪装。但是从 RequestMapping 转换响应时我有很多问题。

控制器.java :

@RequestMapping("/users")
public ResponseEntity<List<User>> sendUsers
Run Code Online (Sandbox Code Playgroud)

MyFeignClient.java :

public interface MyFeignClient {

@RequestLine(value="GET /api/users")
ResponseEntity<List<User>> getUsers();}
Run Code Online (Sandbox Code Playgroud)

主类.java :

MyFeignClient callService = Feign.builder()
            .encoder(new Encoder.Default())
            .decoder(new Decoder.Default())
            .requestInterceptor(new FeignConfig(props).getJwtRequestInterceptor())
            .target(MyFeignClient.class, "http://localhost:8710");
Run Code Online (Sandbox Code Playgroud)

进而 :

ResponseEntity<List<User>> txnPool = callService.getUsers();
Run Code Online (Sandbox Code Playgroud)

但我有以下错误:

feign.codec.DecodeException User 不是此解码器支持的类型

我该如何解决?

tro*_*ble 5

我通过使用 JacksonEncoder 和 JacksonDecoder 解决了它

MyFeignClient callService = Feign.builder()
        .encoder(new JacksonEncoder())
        .decoder(new JacksonDecoder())
        .requestInterceptor(new FeignConfig(props).getJwtRequestInterceptor())
        .target(MyFeignClient.class, "http://localhost:8710");
Run Code Online (Sandbox Code Playgroud)

我还添加@Headers("Content-Type: application/json")到我的 Feign 界面