【发布时间】:2013-01-10 13:20:13
【问题描述】:
我有一个文件上传 JSP 可以正常工作,但现在不行。 在我们更换服务器并更新软件(tomcat5 到 tomcat6 等)后,它现在无法正常工作。 代码如下:
FileOutputStream fileOut = new FileOutputStream(savePathFile);
fileOut.write(dataBytes, startPos, (endPos - startPos));
文件是使用第一行 new FileOutputStream(...) (filesize is 0) 创建的,但第二行 .write 会引发异常。文件的所有者/组是 tomcat/tomcat。
所以看来tomcat应该有正确的权限。
我还查看了 tomcat java 权限策略(catalina.policy),看看是否有正确的 FilePermissions。他们不在那里,所以我们补充说:
grant codeBase "file:${catalina.home}/webapps/myapp/-" {
permission java.io.FilePermission "/var/lib/tomcat6/webapps/myapp/photographs", "read, write";
}
但这并没有什么不同。然后我被告知没有在启用安全选项的情况下启动tomcat。
tomcat6.conf:SECURITY_MANAGER="false"
我不确定我还应该去哪里看。我有几个明确的问题:
如何查看用户 tomcat 对该目录的实际权限(rwx)?
如何验证tomcat是否在启用安全选项的情况下运行?
对于权限,应该是:
grant codeBase "file:${catalina.home}/webapps/myapp/admin/-" {
因为upload.jsp文件在webapps/myapp/admin目录下?
感谢您的帮助, 弗兰克
【问题讨论】:
-
抛出了什么异常?向我们显示错误消息。
-
这是来自 FileOutputStream.write() 调用的 IOException,并且 Exception.getMessage() 为“null”。
-
你的第二行有错字吗? FileOut 应该是 fileOut。
-
看起来这个编辑器将行的第一个字符大写 - 它是 fileOut - 我编辑了帖子。
-
你使用过fileOut.close(); ?
标签: jsp tomcat file-permissions