1

我正在使用 groovy、spring5、springboot2 并且我试图用 WebClient 替换 Resttemplate 以便进行一些同步 HTTP(REST) 调用。Retrieve() inwebClient.get().uri("").retrieve()在 .groovy 中未被识别(编译错误),而相同的代码在 .java 中有效

WebClientJava.java


import org.springframework.web.reactive.function.client.WebClient;

public class WebClientJava {

    String retriever(){

        WebClient webClient = WebClient.create();

       String responsess =  webClient.get().uri("").retrieve().bodyToMono(String.class).block();


        return responsess;
    }
}

WebClientGroovy.groovy

import org.springframework.web.reactive.function.client.WebClient

class WebClientGroovy {

    String retriever(){

        WebClient webClient = WebClient.create()

        WebClient.RequestHeadersSpec responsess = webClient.get().uri("").retrieve().bodyToMono(String.class).block()

        return responsess
    }
}

我希望它与 groovy 一起使用,因为它与 java 一起使用。有没有人遇到或有什么想法?

4

1 回答 1

1

您的问题似乎是由 IntelliJ IDEA 中的错误引起的,因为示例项目使用 Maven 在命令行上成功构建。

uri方法返回SS定义为S extends RequestHeadersSpec<?>。IDE 似乎无法应对此问题,并认为它正在处理?它视为java.lang.Object. 我建议将问题报告给 JetBrains

同时,您可以通过将 return from 转换为解决此问题uri

String responses = ((WebClient.RequestHeadersSpec)webClient.get().uri(""))
        .retrieve().bodyToMono(String.class).block()
于 2019-05-29T19:25:28.877 回答