我正在寻找一份清晰的文档,说明如何在 kotlin 中为 Spring Webflux 创建路由器,以指导用户使用 Rest 和 Web 端点。
我让路由器毫无问题地完成其余点。但无法在网络上执行此操作,总是收到以下错误消息:
java.lang.IllegalArgumentException:无法解析名为“index”的视图
at org.springframework.web.reactive.function.server.DefaultRenderingResponseBuilder$DefaultRenderingResponse.lambda$writeToInternal$1(DefaultRenderingResponseBuilder.java:197) ~[spring-webflux-6.0.7.jar:6.0.7]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
*__checkpoint ⇢ Handler com.springinaction.router.config.WebConfiguration$$Lambda$524/0x0000000800519368@46b9842f [DispatcherHandler]
*__checkpoint ⇢ HTTP GET "/index" [ExceptionHandlingWebHandler]
Original Stack Trace:
我尝试了几种方式到路由器
@Bean
fun router(): RouterFunction<*> {
return resources("/**", ClassPathResource("/templates/"))
.andOther(
route(GET("/index"), HandlerFunction {
ServerResponse
.ok()
.render("index")
})
.andOther (
route(
GET("/hello"), HandlerFunction {
ServerResponse
.ok()
.contentType(MediaType.TEXT_HTML)
.bodyValue("Hello Router World")
}
)
)
)
}
还有这种方式
@Bean
fun router(): RouterFunction<*> {
return router {
GET("/hello") {
ServerResponse
.ok()
.contentType(MediaType.TEXT_HTML)
.bodyValue("Hello Router World")
}
GET("/index") {
ServerResponse
.ok()
.render("index")
}
}
}
同样的错误... 我怎样才能让路由器解析
index.html
文件并从/templates
包加载它?
问候