Ошибки FreeMarker и WebFlux - PullRequest
       31

Ошибки FreeMarker и WebFlux

0 голосов
/ 22 апреля 2020

Когда я использую freemarker в приложении webflux, я всегда получаю одно исключение: не могу разрешить представление с именем '';

My FreemarkerConfig:

@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() {
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
    configurer.setTemplateLoaderPaths("classpath:/src/main/resources/templates");
    return configurer;
}  

ViewResolver:

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
    registry.freeMarker().suffix(".ftl");
}

classpath: my classpatg

трассировка стека: трассировка стека

mainrouter:

@Configuration
public class MainRouter {

    @Bean
    public RouterFunction<ServerResponse> route(MainHandler mainHandler){

        RequestPredicate get = RequestPredicates.GET("/news");

        return RouterFunctions.route(get, mainHandler::news);
    }
}

mainhandler:

@Component
public class MainHandler {

    private Logger logger = LoggerFactory.getLogger(MainHandler.class);

    @Autowired
    private UserService userService;

    public Mono<ServerResponse> news(ServerRequest serverRequest) {

        Mono<? extends Principal> principal = serverRequest.principal();

        return principal.flatMap(p -> {

            logger.info(p.getName());

            return userService.findByUserName(p.getName()).flatMap(user -> {
                return ServerResponse.ok().render("news", Map.of("currentUser", user, "messages", userService.findMessages(user)))
                        .onErrorResume(error->{
                    logger.info(error.getLocalizedMessage());
                    return ServerResponse.badRequest().build();
                });
            });

        });
    }
}

1 Ответ

0 голосов
/ 22 апреля 2020

Полагаю, что должно быть "classpath:/templates" Часть /src/main/resources/ пропала при сборке проекта, например, вывод jar будет иметь каталог templates непосредственно в каталоге архива root.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...