Tomcat通过server.xml映射上下文

时间:2012-02-24 17:07:38

标签: java java-ee web-applications tomcat

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

中的server.xml文件中的内容
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/blah" docBase="h:/tmp/mywar.war" reloadable="true" />
</Host>

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

4 个答案:

答案 0 :(得分:5)

如果您希望在http://myhost:8080/myTestContext有网站,请将以下内容放入$Catalina_home$/conf/localhost/whateveryoulike.xml

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
    <Context deployOnStartup="true" docBase="C:\path\to\your\docBase\" path="/myTestContext" reloadable="false">
    <Manager pathname=""/>
</Context>

答案 1 :(得分:4)

您最好将上下文配置放在应用程序文件中/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

答案 2 :(得分:0)

不要这样做,这种方法来自Tomcat 6的discouraged

  

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

答案 3 :(得分:0)

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

您可以通过检查

下的日志(标准错误)来验证这一点

[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

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