2

我正在使用 spring boot 2.0.0.M2 遵循 Simon Basle 的“Reactor by Example”中的代码。它就像一个魅力。但是,当我尝试将路径变量绑定到 Mono 并发送请求http://localhost:8080/monohello/Hero时,它的响应如下:

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

下面是控制器:

@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 + "!");
}}
4

1 回答 1

1

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

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert

于 2017-07-21T15:01:59.850 回答