A项目正常,打成jar后,Maven被B项目引用。
Freemarker配置:
<!-- 配置freeMarker的模板路径 com.simple.tag.FreeMarkerViewConfig --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="freemarkerSettings" ref="freemarkerConfiguration" /> <property name="templateLoaderPath"> <value>classpath:/templates/</value> </property> <property name="freemarkerVariables"> <map> <entry key="xml_escape" value-ref="fmXmlEscape" /> </map> </property> <property name="defaultEncoding"> <value>utf-8</value> </property> </bean>项目启动时报错:
17:45:29.204 [localhost-startStop-1] DEBUG o.s.w.s.v.f.FreeMarkerConfigurer - Cannot resolve template loader path [classpath*:/templates/] to [java.io.File]: using SpringTemplateLoader as fallback
java.io.FileNotFoundException: D:\Workspaces2\.metadata\.me_tcat7\webapps\community\classpath*:\templates does not exist.
at freemarker.cache.FileTemplateLoader$1.run(FileTemplateLoader.java:125) ~[freemarker-2.3.19.jar:2.3.19]
Freemarker是否无法读取jar中的模板?
或者有比的变通方法?求教
模板路径不对jar中的配置文件可以读取到没有问题,是Freemarker读取不到jar中的模板回复<aclass='referer'target='_blank'>@程序员V:如果是在jar里面就直接写classpath*:applicationContext-.xml类似的看看对的,不打成jar包可以访问
也遇到了这个问题,求指教,,,
对freemarker没深入研究过,但是看异常日志就知道问题原因了。jar中的文件不能以File的形式读取,只能以流的形式读取。如果用File读取就会报文件不存在的异常。看下TemplateLoader的实现类,可以换成SpringTemplateLoader,这个模版加载器是用流的形式读取模版恰好,使用springboot+freemarker时,打项目打成jar包后,遇到这个问题。
网上找了好久,一直没有找到合适的答案。后来,自己阅读了下出错部分源代码,终于整明白了。
系统默认是优先加载文件系统的模板引擎,不过有这个异常,也并不影响使用,只是日志中会多个异常,有点强迫症的,心里难过。
spring.freemarker.prefer-file-system-access=false 给你参考我的:
spring: jackson: date-format:yyyy-MM-ddHH:mm:ss#时间格式化 time-zone:Asia/Chongqing#时区设置 ############################## #以下是配置不同的模板引擎 ############################## # DefaultExtensionsare: #
.html-Thymeleaf # .tpl-Groovy # .ftl-Freemarker # *.vm-Velocity freemarker: cache:false template-loader-path:["classpath:/webapp/"] prefer-file-system-access:false #不使用文件系统优先,而使用classpath下的资源文件优先,解决打jar包运行后,出现的异常问题
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。