我正在使用Kotlin和Spring Boot,现在尝试通过传递一个响应式服务的处理程序来从GET restful服务获取状态值。
我能看到我正在传递的处理程序在请求中,但是无论何时我构建正文,都会出现以下异常:
java.lang.IllegalArgumentException: 'producer' type is unknown to ReactiveAdapterRegistry
at org.springframework.util.Assert.notNull(Assert.java:198) ~[spring-core-5.2.0.RELEASE.jar:5.2.0.RELEASE]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException
这是我的代码:
@Bean
fun getReceiptConversionStatus() = router {
accept(MediaType.APPLICATION_JSON).nest {
GET("/BsGetStatus/{handler}", ::handleGetStatusRequest)
}
}
private fun handleGetStatusRequest(serverRequest: ServerRequest): Mono<ServerResponse> = ServerResponse
.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(GetStatusViewmodel(fromObject(serverRequest.pathVariable("handler"))), GetStatusViewmodel::class.java)
.switchIfEmpty(ServerResponse.notFound().build())
这就是我的视图模型:
data class GetStatusViewmodel(
@JsonProperty("handler") val documentHandler: String
)
bodyValue
而不是body
来避免将对象包装为Mono。有关的行看起来会像这样:bodyValue(postRequestObj)
。 - Valdèse Kamdem