在EAR内部,WAR加载不同的weblogic,为什么?

时间:2011-07-21 18:55:47

标签: java weblogic ear weblogic11g

WebLogic 11g如何在EAR文件中加载库?我有一个Web应用程序的问题,当部署为WAR(它依赖于WEB-INF / lib中的库)时,它可以正常工作。但是,当它在EAR文件中时,除非我将它们放在APP-INF / lib中,否则WebLogic不会找到这些库。这是否意味着如果我要部署为EAR,我必须从WEB-INF / lib目录中提取所有JAR文件并将它们放在APP-INF / lib中?或者是否有可以在WebLogic中完成的配置以避免这种情况?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您需要在多个WAR文件之间或WAR文件和EAR文件之间共享JAR文件,则需要将它们打包到EAR中。

如果WAR#1在其WEB-INF / lib中有一个JAR并且打包在带有WAR#2的EAR中,则WAR#2将无法在WAR#1 / WEB-INF /中看到JAR文件库。

答案 1 :(得分:1)

解决您的问题将了解Java EE类加载在容器中的工作原理。您应该查看this link以获得理解,但基本问题是当您将应用程序打包为EAR时,您已将另一个类加载器(应用程序类加载器)引入到类加载层次结构中。您可以使用prefer-web-inf-classes元素将WebLogic配置为从Web应用程序加载。