2016-06-28 5 views
1

Я думаю, что я просмотрел ВСЕ на stackoverflow об этой проблеме, но я не могу ее решить.
Предполагая, что:Ehcache + Spring 4 + Weblogic 12c = ClassNotFoundException

  • я попытался 4.2.5, 4.2.6, 4.3.0 пружинные версии
  • я попытался 2.9.0 до последних версий 2.10.2.2.21 Ehcache
  • я имею в мой pom (и в результате войны) spring-context, spring-context-support, ehcache jars
  • Я развертываю EAR, содержащий WAR, включая в своем каталоге/WEB-INF/lib все необходимые выше банки
  • мой EAR отлично работает с моими 3-мя средами (eclipse + Weblogic 12c на Windows 7, OSX и Ubun Tu)

при попытке развернуть же EAR на тестовую среду на основе Weblogic 12.2.1.0.0 я сталкиваюсь с этой проклятой StackTrace:

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

У меня была аналогичная проблема с тем, что Weblogic не обнаружил класс из библиотеки, потому что на самом деле он использовал другую версию этой библиотеки, которая уже была в его пути к классам.

Прежде всего, убедитесь, что у него нет другой версии ehCache, если это так, вы можете сказать Weblogic, чтобы использовать версию, встроенную в ваше приложение, для определенного пакета в файле дескриптора развертывания WebLogic (WEB-INF/weblogic.xml):

<wls:weblogic-web-app ...> 
    ... 
    <wls:container-descriptor> 
     <wls:prefer-application-packages> 
      <wls:package-name>net.sf.ehcache</wls:package-name> 
     </wls:prefer-application-packages> 
    </wls:container-descriptor> 
</wls:weblogic-web-app> 

См https://docs.oracle.com/cd/E24329_01/web.1211/e21049/weblogic_xml.htm#WBAPP663

Смежные вопросы