spring webclient不工作

gkl3eglg  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(466)

我有一个spring启动应用程序,我使用webclient向api发出请求,该api返回以下格式 {"results": {...}} 物体在哪里 results 字段可以有多种不同的格式。我创建了以下类来存储api响应。

@Data
@Jacksonized
@Builder
public class ApiResponse<T> {
    private T results;
}

当我调用以下方法时:

public MyResClass makeApiCall(String URI) {
    ApiResponse<MyResClass> response = webClient.get()
                    .uri(URI)
                    .accept(MediaType.APPLICATION_JSON)
                    .retrieve()
                    .bodyToMono(new ParameterizedTypeReference<ApiResponse<MyResClass>>() {})
                    .block();

    return response.getResults();
}

java.lang.ClassCastException 与消息一起抛出:“class java.util.linkedhashmap cannot be cast to class myresclass”

qmelpv7a

qmelpv7a1#

删除 @Builder 以及 @Jacksonized 注解和重复测试,似乎没有它们就可以正常工作。
p、 注意安全 block() 调用时,如果此代码恰好在非阻塞线程上执行,则可能引发各种错误!

相关问题