我有一个进程上传一些.pdf
文件的目录.这个过程是我无法控制的.
我需要使用Tomcat通过网站提供这些文件.
我有一个/var/lib/tomcat5/webapps/test1
可用于Web 的目录,我可以使用浏览器查看其中的文件.
所以,我创建了一个指向带有.pdf
文件的目录的符号链接:
/var/lib/tomcat5/webapps/test1/files/
但是我在该目录中看不到任何内容.
如何test1
仅在目录中启用符号链接?我不想在任何地方启用符号链接,只是为了使.pdf
文件目录可供网络使用.
创建META-INF/context.xml
包含的解决方案存在一些问题
最大的问题是,如果conf/context.xml
存在,则allowLinking
在
有需要优先于一个
在META-INF/context.xml
.如果conf/context.xml
没有明确定义allowLinking
,那就像说的一样allowLinking="false"
.(请参阅我对上下文优先级问题的回答)
为了确保您的应用允许链接,您必须说
.
另一个问题是path="/myapp"
在a中忽略了META-INF/context.xml
.为了防止混淆,最好不要混淆.唯一一次path
在
有任何效果的server.xml
,和官方的Tomcat文档建议不要把
S IN一个server.xml
.
最后,myapp/META-INF/context.xml
我推荐使用conf/Catalina/localhost/myapp.xml
文件而不是文件.这种技术意味着你可以保持你的META-INF
干净的内容,这是你的webapp的胆量 - 我不喜欢冒险在我的webapp的胆量.:-)
META-INF
在Web应用程序的目录中创建context.xml文件,其中包含:
更多信息:http://www.isocra.com/2008/01/following-symbolic-links-in-tomcat/
是的我知道这是一个老问题,但是我找到了一个新的解决方案,使用带有--bind选项而不是符号链接的mount,并且tomcat不需要任何重新配置:
cd/var/lib/tomcat5/webapps/test1 /
mkdir文件
mount --bind/path/to/actual/upload/directory/files文件
这在Tomcat 8+中的工作原理有所不同
http://tomcat.apache.org/migration-8.html