Spring Boot运行报MustacheServletWebConfiguration.mustacheViewResolver错误求助
问题根因
- 项目缺少Spring Web核心依赖,Spring MVC相关类不存在,触发Mustache模板引擎自动配置时找不到依赖类报错
- Spring Boot相关依赖版本不统一,父依赖版本和子依赖版本不一致引发兼容问题
- 手动引入了scope为provided的Servlet API,可执行jar运行时不会加载该依赖
- 运行jar时指定的文件名和实际打包生成的文件名不匹配
解决方案
- 修正pom.xml依赖配置,参考如下调整:
<!-- 继承父依赖的统一版本,删除原有手动指定的version标签 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- 新增Spring Web核心依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 完全删除下面这段手动引入的javax.servlet-api依赖,spring-boot-starter-web已内置相关实现 --> <!-- <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> -->
- 若你的项目不需要使用Mustache模板引擎,可直接关闭对应的自动配置,修改启动类注解:
import org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration; @SpringBootApplication(exclude = {MustacheAutoConfiguration.class}) public class DoctorServiceApplication { // 原有代码保持不变 }
- 重新构建并运行项目:
mvnw clean package # 注意jar包名要和pom中artifactId+version对应,你的配置生成的jar包名是DoctorService-0.0.1.jar java -jar target/DoctorService-0.0.1.jar
内容的提问来源于stack exchange,提问作者Chty_syq
相关产品推荐
相关产品推荐

