Tomcat通过server.xml映射上下文

我创建了一个war并将它部署到我的$ CATALINA_HOME / webapps文件夹就好了。 然后我想测试配置它以指向任意位置的战争,例如c:\ tmp \ mywar.war。 这是我放在$ CATALINA_HOME / conf中的server.xml文件中的内容。

   

当我尝试加载localhost时,Tomcat返回404:8080 / blah。 如果我将docBase指向爆炸战争,它就可以了。 我在这里想念的是什么?

如果您想在http://myhost:8080/myTestContext上找到一个站点,请将以下内容放在$Catalina_home$/conf/localhost/whateveryoulike.xml

     

您最好将上下文配置放在应用程序文件中的/META-INF/context.xml中的单个文件中。

建议不要将元素直接放在server.xml文件中。 这是因为它使得修改Context配置更具侵入性,因为在不重新启动Tomcat的情况下无法重新加载主conf / server.xml文件。

您可以在此处查看Tomcat7文档中的更多详细信息: http : //tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

不要这样做,Tomcat 6 不鼓励这种方法:

对于Tomcat 6,与Tomcat 4.x不同,不建议将元素直接放在server.xml文件中。 这是因为它使得修改Context配置更具侵入性,因为在不重新启动Tomcat的情况下无法重新加载主conf / server.xml文件。

我刚遇到这个问题。 有点尴尬是因为我错了路!

您可以通过检查日志(标准错误)来validation这一点

[Tomcat安装目录] / logs

你会看到这样的东西:

Jun 16, 2014 12:34:10 PM org.apache.catalina.core.StandardContext resourcesStart SEVERE: Error starting static Resources java.lang.IllegalArgumentException: Document base ... does not exist or is not a readable directory

另一个注意事项(您不会收到此消息的错误消息)是,如果要部署war而不是展开的webapp,则必须指定文件的路径而不仅仅是它包含目录