OpenFeign 请求抛出 AbstractMethodError

dev*_*aii 2 spring-boot spring-cloud openfeign

要求:

    @Headers("userId: {userId}")
    @RequestMapping(method = RequestMethod.GET, value = "/token")
    String getToken(@RequestHeader(name = "userId") Long userId);
Run Code Online (Sandbox Code Playgroud)

处理程序:

    @GetMapping("/token")
    public ResponseEntity<?> getToken(@RequestHeader String userId) throws NoSuchAlgorithmException, InvalidKeySpecException {
        String token = jwtAuth.generateToken(userId);
        return ok(token);
    }
Run Code Online (Sandbox Code Playgroud)

例外:

java.lang.AbstractMethodError:接收器类org.springframework.cloud.openfeign.support.SpringDecoder$FeignResponseAdapter没有定义或继承接口org.springframework的解析方法'abstract org.springframework.http.HttpStatusCode getStatusCode()'的实现.http.client.ClientHttpResponse。

不确定我在这里做错了什么。如果需要,我可以发布完整的堆栈跟踪

OpenFeign版本是3.1.5 Springboot 3

小智 6

看来 spring-boot 和 spring-cloud 版本不一致。对于 Spring Boot 3.X,您可以使用 Spring Cloud 版本2022.0.x

请注意,这与 OpenFeign 版本不同

<properties>
    <spring-cloud.version>2022.0.1</spring-cloud.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

欲了解更多详情,请访问:https ://spring.io/projects/spring-cloud 。