首先,对于在Tomcat部署web应用好几种方式,具体我参考Tomcat8.0帮助文档:
不建议将<Context>元素直接放在server.xml文件中。这是因为它使得修改 上下文配置更具侵入性,因为主 conf/server.xml
文件不能重新加载而不重新启动Tomcat。
可以显式地定义各个上下文元素:
- 在应用程序文件
/META-INF/context.xml
内部的单个文件中。可选地(基于主机的copyXML属性),可以将其复制$CATALINA_BASE/conf/[enginename]/[hostname]/
并重命名为应用程序的基本文件名加上“.xml”扩展名。 - 在目录中的单个文件(带有“.xml”扩展名)中
$CATALINA_BASE/conf/[enginename]/[hostname]/
。上下文路径和版本将从文件的基本名称(文件名减去.xml扩展名)派生。此文件将始终优先于任何在web应用程序的META-INF目录中打包的context.xml文件。 - 里面一个Host元素在main
conf/server.xml
。
可以定义适用于多个web应用的默认上下文元素。单个Web应用程序的配置将覆盖在其中一个默认值中配置的任何内容。在默认上下文中定义的任何嵌套元素(例如<Resource>元素) 将为默认应用的每个上下文创建一次 。它们不会在Context元素之间共享。
- 在
$CATALINA_BASE/conf/context.xml
文件中:Context元素信息将由所有Web应用程序加载。 - 在
$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default
文件中:Context元素信息将由该主机的所有Web应用程序加载。
除了server.xml,定义Context 元素的文件只能定义一个Context元素。
注意事项:
1.在部署war时,<Context docBase="d:\register.war" /> 路径的文件名加上“.war”扩展名。
2.部署前server.xml中
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
将 unpackWARs="true" 改为unpackWARs="false" ;