Java 无法绑定到Mono<;字符串>;通过@PathVariable?

Java 无法绑定到Mono<;字符串>;通过@PathVariable?,java,spring,spring-mvc,project-reactor,spring-webflux,Java,Spring,Spring Mvc,Project Reactor,Spring Webflux,我使用SpringBoot2.0.0.M2遵循SimonBasle的“示例反应堆”中的代码。它就像一个符咒。但是,当我尝试将path变量绑定到Mono并发送请求时,它的响应如下: { “时间戳”:1500534277626, “地位”:500, “错误”:“内部服务器错误”, “消息”:“未能将“java.lang.String”类型的值转换为所需类型“reactor.core.publisher.Mono”;嵌套异常为java.lang.IllegalStateException:无法将“ja

我使用SpringBoot2.0.0.M2遵循SimonBasle的“示例反应堆”中的代码。它就像一个符咒。但是,当我尝试将path变量绑定到Mono并发送请求时,它的响应如下:

{ “时间戳”:1500534277626, “地位”:500, “错误”:“内部服务器错误”, “消息”:“未能将“java.lang.String”类型的值转换为所需类型“reactor.core.publisher.Mono”;嵌套异常为java.lang.IllegalStateException:无法将“java.lang.String”类型的值转换为所需类型“reactor.core.publisher.Mono”:未找到匹配的编辑器或转换策略”, “路径”:“/你好/英雄” }

以下是控制器:

@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 + "!");
}}
@RestController公共类ExampleController{
@GetMapping(“hello/{who}”)
公共Mono hello(@PathVariable String who){
返回Mono.just(who.map)(w->“Hello”+w+“!”);
}
@GetMapping(“Monohhello/{who}”)
公共Mono Monohhello(@PathVariable Mono who){
返回who.map(w->“Hello”+w+“!”);
}}

出现此错误的原因是spring找不到已注册的
转换器。我不确定这是不是你想做的事。在方法中创建Mono可能是最简单的方法。在这种情况下,使用转换器不会获得太多收益。事实上,你主要是失去了创建Mono的灵活性


您是否尝试过例如:
@GetMapping(/monoholl/{who})、method=RequestMethod.GET
@GetMapping(/monoholl/{who})、method=RequestMethod.POST
谢谢。已经尝试过了,但是错误响应是一样的。接受Mono作为方法参数真的有意义吗?你需要注册一个转换器来转换Sting->Mono。谢谢!注册转换器后,一切都变冷了。但正如你提到的,这没有意义。我只是想也许SpringWebFlux已经为我们实现了这些功能,不仅是转换器,还有json反序列化程序,比如@RequestBody Mono。