【问题标题】:Spring Boot 2 - Returning rx.Observable from RestControlerSpring Boot 2 - 从 RestControler 返回 rx.Observable
【发布时间】:2023-03-19 11:34:01
【问题描述】:

我试图从 Spring RestController 返回一个 Observable,但没有成功。我的代码如下:

@RestController
public class HystrixCommentController {

    @GetMapping(value = "/com1/{id}")
    public Observable<Comment> getComment1(@PathVariable int id) {
        return Observable.just(new Comment());
    }
}

在邮递员中运行请求时,我总是收到以下错误:

{
  "timestamp": "2018-07-08T16:07:36.809+0000",
  "status": 500,
  "error": "Internal Server Error",
  "message": "No converter found for return value of type: class rx.internal.util.ScalarSynchronousObservable",
  "path": "/com1/1"
}
  • SpringBoot 2 不也支持 RestController 中的 rx.Observable 就像他们对 Mono/Flux 所做的那样?

  • 我需要手动将 Observable 转换为 Mono/Flux 吗?

问候

注意:spring-boot-starter-webflux 包含在 pom 中

我试过这个:

@RestController
    public class HystrixCommentController {

        @GetMapping(value = "/com1/{id}", produces = "application/json")
            public Observable<Comment> getComment1(@PathVariable int id) {
            return Observable.just(new Comment());
        }

}

没有成功:

{
    "timestamp": "2018-07-08T18:21:42.918+0000",
    "status": 406,
    "error": "Not Acceptable",
    "message": "Could not find acceptable representation",
    "path": "/com1/1"
}

【问题讨论】:

标签: spring spring-mvc spring-boot rx-java hystrix


【解决方案1】:

所以这里的问题是我的 pom.xml 中缺少依赖项:

<dependency>
    <groupId>io.reactivex</groupId>
    <artifactId>rxjava-reactive-streams</artifactId>
    <version>1.2.1</version>
</dependency>

感谢@Dovmo 发现问题

【讨论】:

    猜你喜欢
    • 2018-12-17
    • 2018-10-03
    • 2019-05-14
    • 1970-01-01
    • 2020-04-22
    • 2021-04-17
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多