Spring映射资源的权限

时间:2014-03-09 15:08:56

标签: java spring file mapping

我正在开发spring应用程序并设置了映射资源:

<resources mapping="/src/**" location="/src/" order="-1" />

现在我可以访问src文件夹中的所有文件而无需登录,这没关系。 现在我尝试使用File Class读取src文件夹中的所有文件,但现在我没有读取文件的权限。怎么解决这个问题?

File file = new File(rquest.getContextPath()+"/src");
file.setReadable(true, true);
System.out.println(file.listFiles());

所以listFiles()函数返回null,我认为这是权限问题吗?

1 个答案:

答案 0 :(得分:0)

这不是权限问题。您尝试通过用于Web访问的r(e)quest.getContextPath()访问文件(不是文件系统!)

如果要通过文件系统访问项目工作区/部署位置中的文件,则应使用以下方法:

Resource myData = new ClasspathResource("myData.xml"): - this will be relative to WEB-INF deploy directory

或:

new File(servletRequest.getSession().getServletContext().getRealPath("/")+"/your-path-relative-to-WEB-INF-deploy-path");

我个人推荐方法#1

修改
您的问题表明您认为正在部署src文件夹(使用WAR / EAR / Built项目复制到服务器,这通常不正确。通常,Webpages文件夹(您在应用程序中调用它的名称)并且正在部署WEB-INF内部的所有内容。希望这有用。