Spring Boot 2 - 从 RestControler 返回 rx.Observable
Posted
技术标签:
【中文标题】Spring Boot 2 - 从 RestControler 返回 rx.Observable【英文标题】:Spring Boot 2 - Returning rx.Observable from RestControler 【发布时间】:2018-12-16 10:53:54 【问题描述】:我试图从 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"
【问题讨论】:
你见过这个吗? ***.com/questions/42748775/… 你可能只是缺少一个依赖项! 是的!你是对的......缺少的依赖是问题所在。谢谢! 【参考方案1】:所以这里的问题是我的 pom.xml 中缺少依赖项:
<dependency>
<groupId>io.reactivex</groupId>
<artifactId>rxjava-reactive-streams</artifactId>
<version>1.2.1</version>
</dependency>
感谢@Dovmo 发现问题
【讨论】:
以上是关于Spring Boot 2 - 从 RestControler 返回 rx.Observable的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 2从入门到入坟 | 基础入门篇:「Spring Boot 2从入门到入坟」系列教程介绍
Spring Boot 2从入门到入坟 | 基础入门篇:「Spring Boot 2从入门到入坟」系列教程介绍
多模块 Gradle 项目 - 从 Spring-Boot 1.5 迁移到 2.1
从 Spring Boot 1.5 升级时为 Spring Boot 2.0 acuator 框架配置安全性
独立资源服务器(Spring Boot 2 + OAuth + JWT)在 Spring-boot 从 1.2.x 升级到 2.x 后给出 UsernameNotFoundException