您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在春季获取FileNotFoundException

在春季获取FileNotFoundException

我相信您需要指定一个绝对路径,而不是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(将自动返回类路径资源)。

另外,也不需要加双斜杠。不知道为什么要这样做。也许有必要用双反斜杠保持住?

其他 2022/1/1 18:27:32 有481人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶