Tomcat7 WAR 解压不完整
Tomcat7 WAR unpack incomplete
我在 CentOS 6.2 上 运行 Tomcat 7.0.23。我有一个 WAR 我使用服务器特定上下文 XML 文件进行部署。
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 文件是预期的行为吗?有记录吗?在哪里?我应该把资源文件放在哪里?
这似乎是 Tomcat 版本 7.0.12 - 7.0.47 中的一个奇怪行为。
版本 7.0.12 的 changelog 包含:
Don't unpack WAR files if they are not located in the Host's appBase.
对于版本 7.0.48(发布为 7.0.50):
Add support for unpacking WARs located outside of the Host's appBase in to the appBase.
有关这些更改的更多信息,请参阅相应的 Bugzilla entry。
我在 CentOS 6.2 上 运行 Tomcat 7.0.23。我有一个 WAR 我使用服务器特定上下文 XML 文件进行部署。
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 文件是预期的行为吗?有记录吗?在哪里?我应该把资源文件放在哪里?
这似乎是 Tomcat 版本 7.0.12 - 7.0.47 中的一个奇怪行为。 版本 7.0.12 的 changelog 包含:
Don't unpack WAR files if they are not located in the Host's appBase.
对于版本 7.0.48(发布为 7.0.50):
Add support for unpacking WARs located outside of the Host's appBase in to the appBase.
有关这些更改的更多信息,请参阅相应的 Bugzilla entry。