这是一个相当普遍的例外:
java.io.FileNotFoundException: class path resource [abc.xml] cannot be opened because it does not exist
然而,我们的应用程序能够找到此资源,读取它并在一段时间内完美地工作,然后发生此异常,即对于之前可访问的相同资源。
是否有可能从类路径中删除资源?服务器上没有此类活动的痕迹(服务器停止或启动,或新部署或war / jar更新)。
我们的环境是在Linux上运行的IBM Websphere,而这个资源正由运行在Spring容器上的Freemarker框架访问。是否有任何这些框架中的错误或(更可能)在应用程序服务器上执行的某些活动可能导致此问题?
更多堆栈跟踪:
java.io.FileNotFoundException: class path resource [abc.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157) ~[spring-core-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at org.springframework.ui.freemarker.SpringTemplateLoader.getReader(SpringTemplateLoader.java:77) ~[spring-context-support-3.1.3.RELEASE.jar:3.1.3.RELEASE]
at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:413) ~[freemarker-2.3.20.jar:2.3.20]
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:330) ~[freemarker-2.3.20.jar:2.3.20]
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:205) ~[freemarker-2.3.20.jar:2.3.20]
at freemarker.template.Configuration.getTemplate(Configuration.java:740) ~[freemarker-2.3.20.jar:2.3.20]
at freemarker.template.Configuration.getTemplate(Configuration.java:665) ~[freemarker-2.3.20.jar:2.3.20]