我相信您需要指定一个绝对路径,而不是Web应用程序的相对路径
FileSystemResource。
尝试
ServletContextResource改为使用。
ResourceServletContext资源的实现 ,解释Web应用程序根目录内的相对路径。
唯一的问题是您需
ServletContext要这样做:
ServletContext servletContext = ...Resource res = new ServletContextResource(servletContext, "/WEB-INF/businesscaliber-servlet.xml");BeanFactory factory = new XmlBeanFactory(res);if (factory != null && beanId != null) { obj = factory.getBean(beanId);}值得注意的是,理想情况下,您将从中检索到此内容
ApplicationContext。从4.4资源加载了的春天参考:
Resource template = ctx.getResource("some/resource/path/myTemplate.txt);将返回的是
ClassPathResource; 如果针对FileSystemXmlApplicationContext
实例执行了相同的方法,则将 返回FileSystemResource。对于WebApplicationContext,您将获得ServletContextResource,依此类推。这样,您可以以适合特定应用程序上下文的方式加载资源。
因此,这是检索资源的首选方法。
或者,因为从
/WEB-INF/技术上讲,它在类路径中,所以您可以使用
classpath:前缀(根据您的评论)或使用
ClassPathXmlApplicationContext(将自动返回类路径资源)。
另外,也不需要加双斜杠。不知道为什么要这样做。也许有必要用双反斜杠保持住?



