0

我正在寻找一种从我的网络应用 JEE 访问静态资源(例如视频文件)的方法。

在我的本地环境中,我在 Eclipse 中我的 tomcat 服务器的配置下的 webapp 上下文中添加了一个别名属性。这很好用。这样做我在 Eclipse Tomcat server.xml 中的上下文是:

<Context path="/maWebApp" docBase="path/vers/ma/webApp" aliases="/video=/chemin/sur/mon/PC">

现在我想在我的生产服务器上做同样的事情。但:

  • 在此服务器(linux、tomcat7)下,文件 etc/tomcat7/server.xml 不包含我的 webapp 的任何“上下文”。我想在 webApp 部署期间会自动创建上下文

  • 如果我为我的应用程序添加“上下文”,为了定义“别名”属性,我的服务器 tomcat 不再重新启动。

所以我的问题是:当我使用 Tomcat7 以及使用 Eclipse 生成的 .war 部署应用程序时,我应该在哪里定义“别名”属性。

重要说明:我不想在 webapp 中管理别名,因为别名会根据服务器(本地开发人员或产品)而变化。

非常感谢您的任何建议和最佳实践,

祝你有美好的一天!

阿德里安

4

2 回答 2

0

您应该能够向 server.xml 添加上下文属性。

  • https://tomcat.apache.org/tomcat-4.1-doc/config/context.html

    <Server port="8005" shutdown="SHUTDOWN">
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

    <Context path="/maWebApp" docBase="path/vers/ma/webApp" aliases="/video=/chemin/sur/mon/PC" /> </Server>

我的tomcat从这个开始很好。

使用“< Context .. />”属性启动它时有什么错误?

于 2015-10-26T13:18:35.023 回答
0

看看这里:https ://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

不鼓励在 server.xml 中定义 Context 元素。而是context.xml放入

$CATALINA_BASE/conf/[enginename]/[hostname]/

enginename很可能是Catalina,所以例如,如果您的 tomcat 目录是/opt/tomcat7/并且您的主机名是www.mysite.com然后将上下文放在此目录中:

/opt/tomcat7/conf/Catalina/www.mysite.com

并重命名您的上下文文件maWebApp.xml

更新:除非您需要静态资源可用于您的应用程序,并且如果您只需要一个虚拟目录供访问者访问静态资源,则不需要该aliases属性。video.xml在与上述相同目录中命名的文件中创建上下文:

<Context docBase="/chemin/sur/mon/PC/" path="/video/"></Context>

然后静态资源将在www.mysite.com/video

于 2015-10-26T15:34:08.113 回答