当我启动 JBoss 6 时,我看到它从 tmp/vfs/automountXXX 文件夹中的 WEB-INF/lib 中解压所有 jar 文件。例如 jackrabbit-server.war 包含库 asm-3.1.jar,然后在 tmp 文件夹中,我看到以下包含文件的文件夹:
asm-3.1.jar-83dc35ead0d41d41/asm-3.1.jar
asm-3.1.jar-2a48f1c13ec7f25d/contents/"unpacked asm-3.1.jar"
它不会只从 my.ear/lib 获取文件 WEB-INF/lib... 为什么会这样?这里有什么方法可以防止它这样做吗?它只会减慢应用程序服务器的启动(和停止)速度,这在开发中不是那么舒服……顺便说一句。以这种方式重新打包战争结构,给了我相同的工作应用程序并在应用程序服务器启动时节省了 1 分钟...... 1 分钟就足够了......我希望有更简单的方法,而无需在开发模式下重新打包。
如果它与 JavaEE 6 规范和 ejb-jars 有某种关系,它们现在可以位于 WEB-INF/lib 中,所以我的 war 文件中没有这样的库......
更新:实际上,当我将 jackrabbit-server.war 重新打包到包含 jackrabbit-server.war 的 jackrabbit-server.ear 并将其所有库移动到 jackrabbit-server.ear/lib 时,我仍然在 tmp 中看到两个文件夹:
asm-3.1.jar-215a36131ebb088e/asm-3.1.jar
asm-3.1.jar-14695f157664f00/contents/
但在这种情况下,最后一个文件夹是空的。所以它仍然会创建两个文件夹,但不会解压缩我的库。我也使用了爆炸部署,所以问题只是关于 jar 文件,而不是解包 ear/war。