Ich habe eine App, die perfekt funktioniert, wenn Sie in IntelliJ oder über Gradle BootRun gestartet.Spring Boot gibt "TemplateInputException: Fehler beim Auflösen der Vorlage" beim Ausführen von jar
jedoch, wenn ich gradle bootRepackage tun und dann versuchen, und das resultierende Glas laufen, ich am Ende mit:
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)
kann ich sehen, dass das Glas hat/templates/** darin enthalten ist. Der Inhalt sieht für mich OK aus. (?)
One möglich Faktor sein kann, dass ich eine HTML-Seite auf ein Layout mit Bezug verwenden, also:
layout:decorator="layouts/main"
Ich kann bestätigen, dass die Datei in dem Gefäß wird.
/login definiert thusly:
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("/login");
registry.addViewController("/").setViewName("/login");
}
und ich habe Feder Sicherheit konfiguriert als:
@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();
}
}
Ich denke, dass ist alles, was zu diesem Thema relevant sein könnten ...
Ich habe https://github.com/spring-projects/spring-boot/issues/112 und Proper location of Thymeleaf views for Spring (unter anderem) gesehen. Ungeachtet dieser Ressourcen war es mir nicht gelungen, die Auflösung der Vorlage zu erreichen.
Alle Vorschläge dankbar erhalten.
Bis jetzt mit Spring Boot so weit gekommen zu sein, um bei der letzten Hürde (fast finales Deployment) gestolpert zu sein, ist ärgerlich.
Nichts offensichtlich springt aus auf mich und Spring-Boot hat eine Probe der Verwendungen Thymeleaf mit einem Layout soll (https://github.com/spring-projects/spring- Boot/Baum/Master/Spring-Boot-Beispiele/Spring-Boot-Sample-Web-UI) Ich denke nicht, dass das das Problem ist. Vielleicht hilft ein Blick auf das Beispiel, einen Unterschied in der Einrichtung Ihrer App zu erkennen? –