Java 百里香可以';t解析多模块SpringBoot项目中的模板

Java 百里香可以';t解析多模块SpringBoot项目中的模板,java,spring-boot,maven,thymeleaf,multi-module,Java,Spring Boot,Maven,Thymeleaf,Multi Module,我在标题中描述了这个问题 我创建了具有以下结构的多模块SpringBoot项目: 父模块(pom包装) 前模块(罐包装) 业务模块(jar包装) 运行模块(war打包) 当我通过IntelliJ直接运行应用程序时,它工作正常,但当我通过Maven构建包并在控制台创建的run-module.war文件中运行时,它抛出: org.thymeleaf.exceptions.TemplateInputException: Error resolving template [pages/examp

我在标题中描述了这个问题

我创建了具有以下结构的多模块SpringBoot项目:

  • 父模块(pom包装)
    • 前模块(罐包装)
    • 业务模块(jar包装)
    • 运行模块(war打包)
当我通过IntelliJ直接运行应用程序时,它工作正常,但当我通过Maven构建包并在控制台创建的run-module.war文件中运行时,它抛出:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [pages/example-page], template might not exist or might not be accessible by any of the configured Template Resolvers
    at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.11.RELEASE.jar!/:3.0.11.RELEASE]
    at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.11.RELEASE.jar!/:3.0.11.RELEASE]
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.11.RELEASE.jar!/:3.0.11.RELEASE]
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.11.RELEASE.jar!/:3.0.11.RELEASE]
    at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:362) ~[thymeleaf-spring5-3.0.11.RELEASE.jar!/:3.0.11.RELEASE]
    at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:189) ~[thymeleaf-spring5-3.0.11.RELEASE.jar!/:3.0.11.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373) ~[spring-webmvc-5.2.2.RELEASE.jar!/:5.2.2.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118) ~[spring-webmvc-5.2.2.RELEASE.jar!/:5.2.2.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057) ~[spring-webmvc-5.2.2.RELEASE.jar!/:5.2.2.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.2.RELEASE.jar!/:5.2.2.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.2.RELEASE.jar!/:5.2.2.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.2.2.RELEASE.jar!/:5.2.2.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.2.RELEASE.jar!/:5.2.2.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.29.jar!/:9.0.29]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.29.jar!/:9.0.29]
...
我可以看到run-module.war中有一个front-module.jar作为lib

有人知道如何“告诉”Thymeleaf模板在哪里吗?

在前缀中添加协议“classpath”,而不使用jar文件名

spring.thymeleaf.prefix=classpath:/templates/

我通过以下配置解决了问题,创建ClassLoaderTemplateResolver很重要:

@配置
公共类配置{
@豆子
公共类装入器TemplateResolver ThymeleaftTemplateResolver(){
ClassLoaderTemplateResolver解析器=新ClassLoaderTemplateResolver();
resolver.setPrefix(“/templates/”);
resolver.setSuffix(“.html”);
可设置缓存的解析器(false);
解析器.setCharacterEncoding(“UTF-8”);
setTemplateMode(TemplateMode.HTML);
返回解析器;
}
@豆子
公共SpringTemplateEngine模板引擎(){
SpringTemplateEngine templateEngine=新的SpringTemplateEngine();
setTemplateResolver(thymeleaftTemplateResolver());
返回模板引擎;
}
@豆子
公共thymeleafviewsolver thymeleafviewsolver(){
ThymileAfViewResolver viewResolver=新的ThymileAfViewResolver();
setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding(“UTF-8”);
返回视图解析器;
}
}

请显示您的任何配置。@chrylis onstrike-我没有任何配置。我尝试添加以下属性:
spring.thymeleaf.prefix=/WEB-INF/lib/front module.jar/templates
spring.thymeleaf.sufix=.html
谢谢您的回答,但不幸的是,这并不能解决问题。