[WEB-INF/ftl] cannot be resolved to URL because it does not exist

[WEB-INF/ftl] cannot be resolved to URL because it does not exist

相关截图:

报这个错,把课程源码下载下来导入工程运行,也是报这个错,难道是我的ide有问题?

ide版本2020.3.1,青椒怎么解决?

http://img1.sycdn.imooc.com//climg/603cb98a09e9254a22260658.jpg


相关代码:

DEBUG [main] o.s.b.f.s.DefaultListableBeanFactory - Creating shared instance of singleton bean 'freemarkerConfig'
17:49:44 DEBUG [main] o.s.w.s.v.f.FreeMarkerConfigurer - Cannot resolve template loader path [/WEB-INF/ftl] to [java.io.File]: using SpringTemplateLoader as fallback
java.io.FileNotFoundException: class path resource [WEB-INF/ftl] cannot be resolved to URL because it does not exist
at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:195)
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:150)
at org.springframework.ui.freemarker.FreeMarkerConfigurationFactory.getTemplateLoaderForPath(FreeMarkerConfigurationFactory.java:345)
at org.springframework.ui.freemarker.FreeMarkerConfigurationFactory.createConfiguration(FreeMarkerConfigurationFactory.java:297)
at org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer.afterPropertiesSet(FreeMarkerConfigurer.java:120)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:895)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:275)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:243)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:123)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)​


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
WittChen 2021-06-13 09:57:58

同学你好,最近我也遇到同样的问题,看了你的描述是只有在进行单元测试的时候才会出现对吧,根据信息来看,是因为单元测试的时候当前的目录下是没有/web/ftl目录的,所以会找不到

好帮手慕阿满 2021-03-03 14:11:40

同学你好,建议同学查看一下applicationContext.xml文件,配置Freemarker模板引擎时,WEB-INF/ftl前是否有"/",如:

http://img1.sycdn.imooc.com//climg/603f286a09610b8609390171.jpg

祝学习愉快~

  • 提问者 Bluse666 #1

    有/,能访问到ftl下面的ftl文件,但是就是报这个错,不知道为啥,测试用例的时候报这个错,启动tomcat的时候不报

    2021-03-03 14:16:39
  • 好帮手慕阿满 回复 提问者 Bluse666 #2

    同学你好,所以现在问题是解决了对吗?测试用例是指测试TestController吗?也需要启动tomcat的。

    祝学习愉快~

    2021-03-03 14:57:31
  • 慕先生5272158 回复 提问者 Bluse666 #3

    你好,你解决了吗?怎么解决的?我也遇到了相同问题

    2021-05-14 00:24:39
好帮手慕阿满 2021-03-01 18:47:57

同学你好,可能是IDEA配置有问题,建议同学按照如下方式重新配置一下再试试,如:

点击File ->Project Structure,在Facts中,点击“+”,选择Web,如:

http://img1.sycdn.imooc.com//climg/603cc453095f9e4211150764.jpg

使用“-”删除原来的,点击“+”修改为webapp目录下的web.xml。下边修改为webapp目录。如:

http://img1.sycdn.imooc.com//climg/603cc5ca09c29dcc11150764.jpg

最后点击Create Artifact。

在如下界面中将依赖添加到发布的项目中,如:

http://img1.sycdn.imooc.com//climg/603cc60009feae3411150764.jpg

重新配置tomcat,在如下位置处选择新配置的包,如:

http://img1.sycdn.imooc.com//climg/603cc63e09be1e5107920267.jpg

重启项目再试试。

祝学习愉快~

  • 提问者 Bluse666 #1
    还是不行啊
    2021-03-01 20:04:45
  • 好帮手慕阿满 回复 提问者 Bluse666 #2

    同学你好,还是报同样的错误吗?建议同学将out和target文件删除再试试。如果还有问题建议将同学的项目目录结构,配置等截图贴一下。

    祝学习愉快~

    2021-03-02 09:55:23
  • 提问者 Bluse666 回复 好帮手慕阿满 #3

    将out和target文件删除之后还是报相同的错误

    http://img1.sycdn.imooc.com//climg/603de11d09f8604306230951.jpg

    2021-03-02 14:54:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师