从Tomcat上下文中提供文件

从Tomcat上下文中提供文件,tomcat,web-applications,contextpath,Tomcat,Web Applications,Contextpath,我有一个web应用程序作为WAR文件部署到Tomcat6。在应用程序中,我希望在该上下文中为目录中的文件提供服务。例如,我将myapp.war部署到/mydir/webapps并通过以下方式访问我的应用程序: http://myhost:myport/myapp/ 我想通过以下方式提供文件: http://myhost:myport/myapp/files/somefile.txt 我该怎么做?到目前为止,我只能在应用程序上下文之外提供文件: http://myhost:myport/fil

我有一个web应用程序作为WAR文件部署到Tomcat6。在应用程序中,我希望在该上下文中为目录中的文件提供服务。例如,我将
myapp.war
部署到
/mydir/webapps
并通过以下方式访问我的应用程序:

http://myhost:myport/myapp/
我想通过以下方式提供文件:

http://myhost:myport/myapp/files/somefile.txt
我该怎么做?到目前为止,我只能在应用程序上下文之外提供文件:

http://myhost:myport/files/somefile.txt
文件位于
/mydir/webapps/files
而不是
/mydir/webapps/myapp/files
目录中。

您是否设置了
myapp

在/mydir/webapps/myapp/META-INF/web.xml中,使用指向外部目录的子上下文

根据示例中的路径,您希望添加以下文件: $CATALINA_BASE///myapp#files.xml (通常为$CATALINA#u BASE/CATALINA/localhost/myapp#files.xml

包括以下内容

<Context docBase="/mydir/webapps/files" />


请注意,要使其安全工作,/mydir/webapps/文件必须位于启用自动部署的任何主机的appBase之外。

web.xml文件位于WAR内部,而不是文件系统上,在它内部,我发现
web\u myapp
/mydir/myapp
目录在我创建它之前不存在。这是在部署
myap之后p、 war
。您可能需要部署您的Web应用程序,以便war“爆炸”(扩展)到文件系统中(我只使用这种类型的部署),因为您需要文件系统来提供文件服务。看看如何做到这一点。您必须将“deployOnStartup”属性设置为“true”。这是一个问题,而不是答案。此外,“显示名称”标记与该问题没有任何关联。它只影响应用程序在可能使用的任何管理工具中的显示方式。它对上下文路径没有影响。