1

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

4

1 回答 1

0

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

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

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

于 2013-07-24T08:48:44.480 回答