无法从 Tomcat 应用程序中的挂载点下载文件

我有一个 tomcat Servlet 应用程序,它托管在不同机器上的多个 tomcat 上。该应用程序具有私有文件和公共文件。私有文件保存在每个 webapp 文件夹中,但在运行时生成的公共文件保存在公共 mpunt 点,这是一个使用 nfs 的远程共享文件夹。该文件夹安装在每台机器上,然后在每个 tomcat webapp 文件夹中创建一个 simlink。

这样,任何一个 tomcat 写入的文件都可以被所有其他 tomcat 访问。

假设我有 4 个 tomcat,每台机器两个。然后我在每台机器上的路径上安装了我的共享文件夹/foo/bar/files。这是使用 nfs 从远程共享文件夹挂载的。现在,在每个应用程序根目录中都创建了指向该文件夹的 simlink。

<Tomcat Home>/webapp/<app context>/files -> /foo/bar/files

当用户上传一些文件时,我们将它放在这个文件夹中。这使得该文件可用于所有其他 tomcat。

不,我的问题是当我将文件写入此文件夹时,它成功发生了。但是当用户尝试下载文件时,它会给出Error code 404.
我试过直接网址。<host>:<port>/<context>/files/foo.csv. 然后我也收到 404。我什至尝试通过 Servlet 流式传输文件,但我在下载时卡住了,服务器端没有 IO 错误。

我正在使用红帽。

请帮忙。提前致谢。


Helenr
浏览 66回答 1
1回答

慕桂英4014372

添加 allowLinking="true" 到 server.xml 的标签解决了这个问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java