无法解析模板加载器路径Freemarker

Rud*_*udy 1 freemarker classpath

我在Spring中使用freemarker.

这是我配置我的freemarker的方式:

<bean id="freemarkerConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">     
    <property name="templateLoaderPath" value="classpath:/META-INF/templates"/>    
</bean> 
Run Code Online (Sandbox Code Playgroud)

这个配置实际上工作正常,我能够使用模板等生成我的报告.

但是在Weblogic中,我总是得到这个例外:

15 Sep 2012 01:03:02,060 DEBUG DefaultListableBeanFactory.doCreateBean:504 - Eagerly caching bean 'freemarkerConfiguration' to allow for resolving potential circular references
15 Sep 2012 01:03:02,074 DEBUG DefaultListableBeanFactory.invokeInitMethods:1498 - Invoking afterPropertiesSet() on bean with name 'freemarkerConfiguration'
15 Sep 2012 01:03:02,228 DEBUG FreeMarkerConfigurationFactoryBean.getTemplateLoaderForPath:360 - Cannot resolve template loader path [classpath:/META-INF/templates] to [java.io.File]: using SpringTemplateLoader as fallback
java.io.FileNotFoundException: class path resource [META-INF/templates] cannot be resolved to absolute file path because it does not reside in the file system: zip:C:/Oracle/Middleware/user_projects/domains/gppuser/servers/GPPFilesBCSIS/tmp/_WL_user/GPPFilesBCSIS/phxni8/war/WEB-INF/lib/_wl_cls_gen.jar!/META-INF/templates
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:204)
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52)
at org.springframework.ui.freemarker.FreeMarkerConfigurationFactory.getTemplateLoaderForPath(FreeMarkerConfigurationFactory.java:351)
at org.springframework.ui.freemarker.FreeMarkerConfigurationFactory.createConfiguration(FreeMarkerConfigurationFactory.java:304)
at org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean.afterPropertiesSet(FreeMarkerConfigurationFactoryBean.java:60)
Run Code Online (Sandbox Code Playgroud)

在加载过程中实际发生此错误.任何人都知道如何解决和删除此异常?该文件实际上仍然使用提供的模板生成,所以我不确定这个错误是什么.

对于您的信息:我没有使用爆炸部署.

dde*_*any 6

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

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