Spring Boot выдает «TemplateInputException: Ошибка разрешения шаблона» при запуске из jar
У меня есть приложение, которое отлично работает при запуске в IntelliJ или через загрузочный загрузчик Gradle.
однако, если я сделаю gradle bootRepackage, а затем попробую запустить полученный jar, я получу:
2014-12-02 21:46:14.086 ERROR 9839 --- [nio-2014-exec-2] org.thymeleaf.TemplateEngine : [THYMELEAF][http-nio-2014-exec-2] Exception processing template "/login": Error resolving template "/login", template might not exist or might not be accessible by any of the configured Template Resolvers
2014-12-02 21:46:14.087 ERROR 9839 --- [nio-2014-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/login", template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause
org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/login", template might not exist or might not be accessible by any of the configured Template Resolvers
at org.thymeleaf.TemplateRepository.getTemplate(TemplateRepository.java:245)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1104)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)
at org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
Я вижу, что в банке есть / templates / **. содержание выглядит хорошо для меня.
Одинвозможный(?) Фактором может быть то, что я использую HTML-страницу, ссылающуюся на макет, таким образом:
layout:decorator="layouts/main"
Я могу подтвердить, что файл находится в банке.
/ логин определяется так:
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("/login");
registry.addViewController("/").setViewName("/login");
}
и у меня есть весенняя безопасность, настроенная как:
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity security) {
security.ignoring().antMatchers("/assets/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable();
http
.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/home")
.failureUrl("/login?error")
.permitAll()
.and()
.logout()
.invalidateHttpSession(true)
.logoutSuccessUrl("/login?logout")
.permitAll();
}
}
Я думаю, что это все, что может иметь отношение к этой проблеме ...
я виделhttps://github.com/spring-projects/spring-boot/issues/112 а такжеПравильное расположение видов Thymeleaf для весны (среди других). Несмотря на эти ресурсы, мне не удалось получить разрешение шаблона.
Любые предложения с благодарностью принимаются.
Пойти так далеко со Spring Boot, но все же споткнуться о последнее препятствие (почти финальное развертывание) - это досадно.