我想我在stackoverflow上浏览了关于这个问题的一切,但我无法解决它 假设:
当我尝试在基于Weblogic 12.2.1.0.0的测试环境中部署相同的EAR时,遇到这个该死的堆栈跟踪:
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: net.sf.ehcache.CacheManager
....
Caused By: java.lang.ClassNotFoundException: net.sf.ehcache.CacheManager
at com.oracle.classloader.PolicyClassLoader.loadClass(PolicyClassLoader.java:267)
at com.oracle.classloader.weblogic.LaunchClassLoader.loadClass(LaunchClassLoader.java:62)
at java.lang.ClassLoader.loadClass(ClassLoader.java:805)
at java.lang.J9VMInternals.prepareClassImpl(Native Method)
at java.lang.J9VMInternals.prepare(J9VMInternals.java:291)
我还尝试以不同的方式打包我的EAR,建立一个瘦小的战争并将所有的罐子包括在EAR库中,但它没有用。
我从未经历过像这样的类加载问题......
提前谢谢。
答案 0 :(得分:0)
我遇到类似的问题,Weblogic没有从库中找到一个类,因为它实际上正在使用已经在其类路径中的该库的另一个版本。
首先,确保它在某处没有不同版本的ehCache,如果是这样,您可以告诉Weblogic将您应用中嵌入的版本用于WebLogic部署描述符文件中的特定包({{ 1}}):
WEB-INF/weblogic.xml
请参阅https://docs.oracle.com/cd/E24329_01/web.1211/e21049/weblogic_xml.htm#WBAPP663