【发布时间】:2015-04-23 13:36:24
【问题描述】:
我在 CentOS 6.2 上运行 Tomcat 7.0.23。我有一个使用服务器特定上下文 XML 文件部署的 WAR。
conf/server.xml 包含:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
conf/Catalina/localhost/MyWebapp.xml 包含:
<Context docBase="/opt/apache-tomcat-7.0.23/MyWebapp.war" unpackWAR="true">
WAR 文件包含(我通过解压缩验证):
css/style.css
META-INF/MANIFEST.MF
META-INF/maven/...
WEB-INF/classes/... (the .class files)
WEB-INF/lib/... (some .jar files)
WEB-INF/resources/...
WEB-INF/web.xml
WEB-INF/log4j.xml
在 tomcat 中部署时(使用热部署或冷部署,之前都删除了 MyWebapp 文件夹)work/Catalina/localhost/MyWebapp/ 文件夹仅包含:
WEB-INF/classes/...
WEB-INF/lib/...
参数 unpackWARs 的Tomcat 7 Host Documentation 表示:
Set to true if you want web applications that are placed in the appBase directory as web application archive (WAR) files to be unpacked into a corresponding disk directory structure, false to run such web applications directly from a WAR file.
所以它对实际解包的内容并不是很具体。
Tomcat 没有解压整个 WAR 文件是预期的行为吗?有记录吗?在哪里?我应该把资源文件放在哪里?
【问题讨论】: