gpt4 book ai didi

java - Tomcat无法访问java API创建的文件

转载 作者:行者123 更新时间:2023-11-28 22:31:49 28 4
gpt4 key购买 nike

在创建基于 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 上部署我的 web 应用程序并尝试下载文件时,我收到此消息:

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

最佳答案

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

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

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

关于java - Tomcat无法访问java API创建的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13788491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com