Java JBoss6从WEB-INF/war库中解压JAR

Java JBoss6从WEB-INF/war库中解压JAR,java,war,jboss6.x,Java,War,Jboss6.x,当我启动JBoss6时,我看到它从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获取文件,仅

当我启动JBoss6时,我看到它从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获取文件。。。为什么会这样?有什么办法可以阻止它这样做吗?它只是减慢了应用服务器的启动(和停止),这在开发中不是很舒服。。。顺便说一句,这样重新打包war到ear结构,给了我相同的工作应用程序,并在应用程序服务器启动时节省了1分钟。。。一分钟就足够了。。。我希望有一种更简单的方法,不用在开发模式中重新打包

如果它与JavaEE6规范和EJBJAR(现在可以在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,所以问题只是关于jar文件,而不是解包ear/war。

它也会解包ear,只是不在同一个地方。你必须四处寻找,找到它们的包装位置,但它们就在那里

它这样做是出于性能原因。如果没有,那么类加载将非常缓慢,因为它必须通过嵌套的ZIP文件递归查找所需内容


因此,你可能会觉得打开耳朵会让你慢下来,但实际上它让事情变得更快。

它也会打开耳朵,只是不在同一个地方。你必须四处寻找,找到它们的包装位置,但它们就在那里

它这样做是出于性能原因。如果没有,那么类加载将非常缓慢,因为它必须通过嵌套的ZIP文件递归查找所需内容

所以你可能会觉得解包会让你慢下来,但实际上它让事情变得更快。

根据JBossAS论坛的说法,这可能是一个bug。现在没有解决方法来修复/避免/配置它

我得到的唯一想法是重新打包我的应用程序:在EAR中,我将库从WAR的WEB-INF\lib移动到EAR\lib(只有struts留在WAR中,否则它将无法工作),以及我作为EAR制作的另一个WAR应用程序及其所有库移动到EAR\lib。在开发模式下,我可以很容易地使用这种结构,它为我节省了2分钟以上的时间来启动应用服务器,这是很多。。。现在JBoss需要1:50分钟才能启动,与之前的4分钟相比……

根据JBoss AS论坛的说法,这可能是一个bug。现在没有解决方法来修复/避免/配置它


我得到的唯一想法是重新打包我的应用程序:在EAR中,我将库从WAR的WEB-INF\lib移动到EAR\lib(只有struts留在WAR中,否则它将无法工作),以及我作为EAR制作的另一个WAR应用程序及其所有库移动到EAR\lib。在开发模式下,我可以很容易地使用这种结构,它为我节省了2分钟以上的时间来启动应用服务器,这是很多。。。现在JBoss需要1:50分钟的启动时间,与之前的4分钟相比……

好吧,我知道解包的原因,但我想问一下开发模式。这不是生产,所以我需要服务器快速启动,在这种情况下,我不会感到类加载缓慢。很高兴在服务器配置中获得选项:)对于生产->我完全同意你,但另一件事对我来说很奇怪:为什么只有WEB-INF/lib中的库被解包,为什么服务器“忽略”ear/lib文件夹(只是用这些信息扩展了我的问题)?@Maxym:只有在启动时才会感觉到类加载缓慢,因此,它对开发人员的影响大于对生产的影响。一旦类被加载,速度就停止了。好吧,我明白了解包的原因,但我想问一下开发模式。这不是生产,所以我需要服务器快速启动,在这种情况下,我不会感到类加载缓慢。很高兴在服务器配置中获得选项:)对于生产->我完全同意你,但另一件事对我来说很奇怪:为什么只有WEB-INF/lib中的库被解包,为什么服务器“忽略”ear/lib文件夹(只是用这些信息扩展了我的问题)?@Maxym:只有在启动时才会感觉到类加载缓慢,因此,它对开发人员的影响大于对生产的影响。加载类后,减速停止。