springboot Cannot resolve template loader path [classpath:/templates/] to [java.io.File]: using Spr

博客记录了Spring Boot以jar包部署时启动抛出模板加载路径无法解析为文件的异常,但不影响正常启动。原因是Spring为确定路径能否映射到普通目录进行检查所致。解决办法是将Spring的日志级别换成INFO。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误记录:

DEBUG 14084 --- [           main] o.s.w.s.v.f.FreeMarker
Configurer         : Cannot resolve template loader path [classpath:/templates/]
 to [java.io.File]: using SpringTemplateLoader as fallback
java.io.FileNotFoundException: class path resource [templates/] cannot be resolv
ed to absolute file path because it does not reside in the file system: jar:file
:/C:/app/upload/clouddisk-server-0.0.1-SNAPSHOT.war!/WEB-INF/classes!/templates/

以jar包部署的时候启动抛出以下异常

但是不影响正常启动,

请看这个类的源码

FreeMarkerConfigurationFactory中存在以下方法
protected TemplateLoader getTemplateLoaderForPath(String templateLoaderPath) {。。。。。}

这没什么好担心的。 请注意,日志级别是DEBUG,而不是ERROR或WARNING。

当模板目录可以通过java.io.File访问时(因为它不在jar,war等中),Spring将配置FreeMarker直接使用java.io.File加载模板,因为FreeMarker可以检查 上次修改时间并自动重新加载模板。 为了确定路径是否可以映射到普通目录,Spring将调用Resource.getFile()并查看它是否抛出IOException。 如果是这样,Spring会使用DEBUG级别进行日志记录,然后将FreeMarker配置为通过Spring的Resource抽象加载模板(当然不使用Resource.getFile)。 所以这是你案例中的正常程序流程。

解决办法:把spring的日志级别换成INFO即可

<logger name="org.springframework.web" level="INFO"/>

原文 http://www.merryyou.cn/2017/03/29/springbootcannot-resolve-template-loader-path-classpathtemplates-t-o-java-io-file-using-springtemplateloader-as-fallback/

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值