我创建了一个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 回答
不要这样做,这种方法是来自Tomcat 6的discouraged:
如果您想在
http://myhost:8080/myTestContext
上找到一个网站,请在$Catalina_home$/conf/localhost/whateveryoulike.xml
中添加以下内容我刚遇到这个问题 . 有点尴尬是因为我错了路!
您可以通过检查日志(标准错误)来验证这一点
[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 path 和 not just it's containing directory .
您最好将上下文配置放在应用程序文件中的/META-INF/context.xml中的单个文件中 .
您可以在此处查看Tomcat7文档中的更多详细信息:http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context