静态资源:使用tomcat

时间:2015-10-26 13:08:34

标签: java eclipse tomcat resources aliases

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

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

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

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

  • 在这个服务器(linux,tomcat7)下,文件etc / tomcat7 / server.xml不包含任何&#34; Context&#34;为我的webapp。我想在WebApp部署期间会自动创建上下文

  • 如果我添加&#34;上下文&#34;对于我的应用程序,为了定义&#34;别名&#34;属性,我的服务器tomcat不再重启。

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

重要提示:我不想管理webapp中的别名,因为别名会根据服务器(本地开发或prod)而变化。

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

祝你有个美好的一天!

阿德里安

2 个答案:

答案 0 :(得分:0)

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

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

      

    &lt; Server port =“8005”shutdown =“SHUTDOWN”&gt;
      &lt; Listener className =“org.apache.catalina.core.AprLifecycleListener”   SSLEngine =“on”/&gt; &LT;监听   类名= “org.apache.catalina.mbeans.GlobalResourcesLifecycleListener”   /&GT; &LT;监听   类名= “org.apache.catalina.core.ThreadLocalLeakPreventionListener”   /&GT;

         

    &lt; Context path =“/ maWebApp”docBase =“path / vers / ma / webApp”   aliases =“/ video = / chemin / sur / mon / PC”/&gt;   &LT; /服务器&GT;

我的tomcat开始很好了。

使用“&lt; Context .. /&gt;”启动它时有什么错误属性?

答案 1 :(得分: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

可以获得静态资源