Spring boot 1.5.6中的RxJava 2
我有一个restController,它返回单个对象Spring boot 1.5.6中的RxJava 2,java,spring,rx-java,Java,Spring,Rx Java,我有一个restController,它返回单个对象 @ApiOperation(value=“创建新用户”) 公共单个saveNewUser(@RequestBody UserRequest UserRequest){ 返回userService.saveUser(userRequest) .map(e->{ CreatedUserResponse响应=新建CreatedUserResponse(e.getUserId()); Link=linkTo(methodOn(UserControll
@ApiOperation(value=“创建新用户”)
公共单个saveNewUser(@RequestBody UserRequest UserRequest){
返回userService.saveUser(userRequest)
.map(e->{
CreatedUserResponse响应=新建CreatedUserResponse(e.getUserId());
Link=linkTo(methodOn(UserController.class)
.getUserById(例如getUserId(),userRequest.getUserId())
.with selfrel();
答复.添加(链接);
返回响应;
});
}
我犯了以下错误
java.lang.IllegalArgumentException:未找到类型为class io.reactivex.internal.operators.single.SingleMap的返回值的转换器
在org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.WriteWithMessageConverterMethodProcessor(AbstractMessageConverterMethodProcessor.java:187)~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
我从Single更改为CreatedUserResponse,一切正常,所以当我从被动类型更改为normal时,它工作正常,但如果我想返回被动类型,我必须做什么?有什么解决方案吗?Spring Boot 2.0支持RxJava 2 文件: 此回购在返回rx java 2类型中具有包装器: 您还可以转换为延迟或未来类型,并按照此处的建议返回:
Spring Boot 2.0支持RxJava 2 文件: 此回购在返回rx java 2类型中具有包装器: 您还可以转换为延迟或未来类型,并按照此处的建议返回:
我知道spring boot 1支持rxjava 1,但我曾经找到了解决方案并起诉了rxjava 2。我正在寻找将rxjava 2与spring boot 1结合使用的解决方案。您应该将CreatedUserResponse作为处理程序方法的一部分返回,以便spring HttpMessageConverters将其转换为适当的响应(因为spring boot 1不知道如何转换rxjava类型)或者您可以定义自己的HttpMessageConverter并在那里进行处理。您可以查看这些用于连接自定义HttpMessageConverter的教程:1)2)。我知道spring boot 1支持rxjava 1,但我曾经找到了处理它并起诉rxjava 2的解决方案。我正在寻找将rxjava 2与spring boot 1结合使用的解决方案。您应该将CreatedUserResponse作为处理程序方法的一部分返回,以便spring HttpMessageConverters将其转换为适当的响应(因为spring boot 1不知道如何转换rxjava类型)或者您可以定义自己的HttpMessageConverter并在那里处理它。您可以查看这些用于连接自定义HttpMessageConverter的教程:1)2)。
@ApiOperation(value="Create new user")
public Single<CreatedUserResponse> saveNewUser(@RequestBody UserRequest userRequest) {
return userService.saveUser(userRequest)
.map(e -> {
CreatedUserResponse response = new CreatedUserResponse(e.getUserId());
Link link=linkTo(methodOn(UserController.class)
.getUserById(e.getUserId(),userRequest.getUserId()))
.withSelfRel();
response.add(link);
return response;
});
}