Kotlin 中的 Spring:用于 Rest 和 Web 的反应式功能路由器

问题描述 投票:0回答:0

我正在寻找一份清晰的文档,说明如何在 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
包加载它? 问候

spring-boot spring-webflux router spring-kotlin
© www.soinside.com 2019 - 2024. All rights reserved.