在tomcat上部署的servlet中编写文件的问题

时间:2010-08-04 10:04:46

标签: java tomcat servlets

我写了一个servlet,它将一个图像写入我的应用程序的根目录,然后在获得GET请求时将其传递给客户端。当我在带有jetty的Eclipse中测试它时,一切正常(带有GWT插件)。  但是当我将它移动到Tomcat时,我得到了filenotfound异常(因为图像根本没有被写入因此无法返回给客户端)。 这个问题是否有写文件的权限?

我将此添加到catalina.policy文件中,但它也没有帮助(webui是我的应用程序的文件夹):

grant { 
   permission java.io.FilePermission "${catalina.home}/webapps/webui/","read,write,delete";
   permission java.io.FilePermission "${catalina.home}/webapps/webui/*","read,write,delete";
    };

2 个答案:

答案 0 :(得分:5)

修改安全策略对此没有帮助;如果是政策问题,您将获得SecurityException而不是FileNotFoundException

后者表示Java进程正在尝试以适当的模式打开文件句柄,但被操作系统拒绝。最可能的原因是Java进程正在执行的文件(或父目录)不可写。

查看您尝试写入的文件夹的权限,特别是查看您运行Tomcat的用户以及他们将拥有的有效权限。

答案 1 :(得分:1)

我解决了这个问题。正如Andrzej所说,问题不在于权限。文件路径错误,因为我没有使用serverContext.getRealPath()来编写文件。 看到这个后我找到了解决方案:http://www.velocityreviews.com/forums/t131134-specifying-path-for-file-to-be-read-by-servlet-with-tomcat.html

TNX。