Tomcat无法访问由Java API创建的文件

时间:2012-12-09 14:51:09

标签: java tomcat runtime.exec

在创建基于Java的Web应用程序的过程中,我遇到了这个问题:

创建一个新目录:

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是合乎逻辑的 感谢大家的回复。

1 个答案:

答案 0 :(得分:0)

昨天我在处理另一个J2EE项目时遇到了类似的问题。令我惊讶的是,问题源于IDE本身。我使用Netbeans IDE进行项目,并将客户上传的图像保存到项目目录中的'/ web / export /'

我当时没有意识到Netbeans将文件从'/ build / web'部署到tomcat而不是'/ web'和图像在运行时放置在'/ web / export'中不一定会异步传播到构建目录。重新启动服务器启动了一个构建过程,将所有更改传播到构建目录并解决给定的问题。

我想如果我手动将war文件部署到tomcat服务器,我首先不会遇到这些问题。