在创造我也遇到了这个问题,一个基于Java的Web应用程序的过程:的Tomcat不能访问由Java的API创建的文件
创建一个新的目录:
Runtime.getRuntime().exec("mkdir /home/me/web/export"));
复制图像:
Runtime.getRuntime().exec("cp /home/me/images/a.jpg /home/me/web/export"
接下来我将在我的JSP文件中创建一个“a.jpg”的下载链接。到现在为止一切正常,但是当我部署我在Tomcat webaplication并尝试下载该文件我得到这个消息:
Http Status 404 - The requested resource (/export/a.jpg) is not available.
我检查了目录和图像可在那里。值得一提的是,在我将图像重命名为例如'b.jpg'并将其重命名为'a.jpg'后,该链接将工作得很好。
编辑1
此问题也会影响由JAVA API创建的文件。我使用Filewriter在同一个目录中创建'data.xml',并且当我试图通过JSP页面中的链接访问它时,我获得了与之前相同的页面。
我拼命地试图解决这个问题,通过给所有人的'chmod 777文件'可用的权限没有任何成功。
编辑2
我意识到,停止Tomcat和重新启动它后,一切都恢复了正常,现在链接工作正常。我认为,tomcat以某种方式持有这个新创建的文件,所有这一切说,有什么我可以做的解决这个问题?
最后编辑:
这恰好是多服务器的问题,因此它是逻辑将其移动到ServerFault。
感谢大家的回应。
为什么你正在使用系统调用来完成使用Java API轻松完成的任务(创建目录,应对文件)? – Crozin
@mdoust可能是安全问题,您的Tomcat服务器方式对此文件没有权限。尝试更改文件夹属性或将文件放在其他位置(不是c目录) –
@Crozin感谢您的回应,使用JAVA API创建新目录非常简单,但我找不到任何直接的方法来处理复制图像。我找到的所有可能的解决方案都涉及使用输入流和输出流。还有其他方法可以解决吗? – mdoust