一尘不染

为Tomcat中的单个目录配置符号链接

tomcat

我有一个目录,进程将一些.pdf文件上传到该目录。这个过程是我无法控制的。

我需要使用Tomcat在网站上提供这些文件。

我有一个/var/lib/tomcat5/webapps/test1可供网络使用的目录,我可以用浏览器查看其中的文件。

因此,我创建了一个指向.pdf文件目录的符号链接:
/var/lib/tomcat5/webapps/test1/files/,但该目录中看不到任何内容。

如何test1仅在目录中启用符号链接?我不想在所有地方启用符号链接,只是为了使包含.pdf文件的目录可用于网络。


阅读 303

收藏
2020-06-16

共1个答案

一尘不染

创建META-INF/context.xml包含以下内容的解决方案存在一些问题<Context path="/myapp" allowLinking="true">

最大的问题是,如果conf/context.xml存在,则allowLinking<Context>有需要 优先于
一个<Context>META- INF/context.xml。如果conf/context.xml未明确定义allowLinking,则表示allowLinking="false"。(请参阅对上下文优先级问题的回答)

为确保您的应用程序允许链接,您必须说<Context override="true" allowLinking="true" ...>

另一个问题是,path="/myapp"在一个被忽略META- INF/context.xml。为避免混淆,最好将其排除在外。唯一一次path<Context>有任何效果的server.xml,和官方的Tomcat文档建议不要<Context>S
IN一个server.xml

最后,myapp/META- INF/context.xml我建议使用conf/Catalina/localhost/myapp.xml文件而不是文件。这项技术意味着您可以保持自己内容的META- INF干净,这就是webapp的胆量-我不愿意冒着被webapp胆量搞糊涂的风险。:-)

2020-06-16