【发布时间】:2017-07-20 07:35:01
【问题描述】:
我正在使用 Spring Boot 2.0.0.M2 遵循 Simon Basle 的“Reactor by Example”中的代码。它就像一个魅力。但是,当我尝试将路径变量绑定到 Mono 并发送请求 http://localhost:8080/monohello/Hero 时,它的响应如下:
{ “时间戳”:1500534277626, “状态”:500, "error": "内部服务器错误", “消息”:“无法将“java.lang.String”类型的值转换为所需的“reactor.core.publisher.Mono”类型;嵌套异常是 java.lang.IllegalStateException:无法转换“java.lang”类型的值。字符串'到所需类型'reactor.core.publisher.Mono':没有找到匹配的编辑器或转换策略”, "路径": "/monohello/Hero" }
下面是控制器:
@RestController public class ExampleController {
@GetMapping("hello/{who}")
public Mono<String> hello(@PathVariable String who) {
return Mono.just(who).map(w -> "Hello " + w + "!");
}
@GetMapping("monohello/{who}")
public Mono<String> monoHello(@PathVariable Mono<String> who) {
return who.map(w -> "Hello " + w + "!");
}}
【问题讨论】:
-
你试过前任:
@GetMapping("/monohello/{who}") , method=RequestMethod.GET或@GetMapping("/monohello/{who}") , method=RequestMethod.POST -
谢谢。试过了,还是一样的错误响应。
-
接受 Mono 作为方法参数真的有意义吗?您需要注册一个可以转换 Sting -> Mono
. 的转换器
标签: java spring spring-mvc project-reactor spring-webflux