首页 文章

Tomcat通过server.xml映射上下文

提问于
浏览
9

我创建了一个war并将它部署到我的$ 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时,Tomcat返回404:8080 / blah . 如果我将docBase指向爆炸战争,它就可以正常运行 . 我在这里想念的是什么?

4 回答

  • 4

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

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

  • 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>
    
  • 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

    另一个注意事项(您不会收到此消息的错误消息)是,如果您要部署战争而不是展开的webapp,则必须 specify the file's pathnot just it's containing directory .

  • 0

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

相关问题