Обновление до Spring 3.2 в Websphere 8.5 ошибка: аннотации ресурсов на DispatcherServlet будут игнорироваться

Я пытался обновить версию Spring с 3.1.2 до 3.2.8 на WebSphere 8.5, но У меня ошибка:

CWNEN0047W: Аннотации ресурсов в полях класса org.springframework.web.servlet.DispatcherServlet будут проигнорированы. Аннотации не могут быть получены из-за исключения: java.lang.NoClassDefFoundError: org.springframework.web.context.WebApplicationContext

Банка spring-web-3.2.8.RELEASE.jar находится в каталоге WAR / WEB-INF / lib. Архив не поврежден, класс WebApplicationContext присутствует. Все как раньше, только весенняя версия повыше.

Все работает с Spring 3.1.2 с той же конфигурацией сборки maven и дескрипторами EAR! Но после изменения версии Spring (и не более) возникает указанная ошибка.

Есть ли что-то особенное, что нужно сделать при обновлении версии Spring на Websphere? Или это просто несовместимость какая-то?

Этот звонок пришел откуда-то из JmxMBeanServer. Это происходит на этапе инициализации веб-приложения, когда EAR развертывается / обновляется из IBM RAD. Включена полная трассировка стека:

в com.ibm.ws.ssl.channel.impl.SSLReadServiceContext $ SSLReadCompletedCallback.complete (SSLReadServiceContext.java:1784) в com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompletion.completed .ibm.io.async.AbstractAsyncFuture.invokeCallback (AbstractAsyncFuture.java:217) на com.ibm.io.async.AsyncChannelFuture.fireCompletionActions (AsyncChannelFuture.java:161) на com.ibcFuture.com .java: 138) на com.ibm.io.async.ResultHandler.complete (ResultHandler.java:204) на com.ibm.io.async.ResultHandler.runEventProcessingLoop (ResultHandler.java:775) на com.ibm.io. async.ResultHandler $ 2.run (ResultHandler.java:905) в com.ibm.ws.util.ThreadPool $ Worker.run (ThreadPool.java:1815) Вызвано: java.lang.ClassNotFoundException: org.springframework.web.context .WebApplicationContext в java.net.URLClassLoader.findClass (URLClassLoader.java:434) в com.ibm.ws.bootstrap.ExtClassLoade r.findClass (ExtClassLoader.java:204) в java.lang.ClassLoader.loadClassHelper (ClassLoader.java:688) в java.lang.ClassLoader.loadClass (ClassLoader.java:667) в com.ibm.ws.bootstrapader.ExtClassLoader .loadClass (ExtClassLoader.java:119) в java.lang.ClassLoader.loadClass (ClassLoader.java:650) в com.ibm.ws.classloader.ProtectionClassLoader.loadClass (ProtectionClassLoader.java:62) на com.ibm.ws. classloader.ProtectionClassLoader.loadClass (ProtectionClassLoader.java:58) в com.ibm.ws.classloader.CompoundClassLoader.loadClass (CompoundClassLoader.java:584) в java.lang.ClassLoader.loadClass (ClassLoader.java:650) в .ws.classloader.CompoundClassLoader.loadClass (CompoundClassLoader.java:584) в java.lang.ClassLoader.loadClass (ClassLoader.java:650) в com.ibm.ws.classloader.CompoundClassLoader.loadClass (CompoundClassLoader) atjava java.lang.ClassLoader.loadClass (ClassLoader.java:650) ... еще 72

Как говорит stacktrace:


person Danubian Sailor    schedule 08.05.2014    source источник


Ответы (1)


Аннотации не могут быть получены из-за исключения: java.lang. NoClassDefFoundError: org.springframework.web.context. WebApplicationContext

Ваш spring-web-xyz.jar не загружен. Убедитесь, что он находится в пути к классам, то есть с помощью приложения администратора. Он должен быть где-то здесь: Серверы -> Серверы приложений -> Имя сервера -> Определение процесса -> Виртуальная машина Java.

Как я уже писал, Spring-Web находится в архиве WAR в EAR. Его никогда не было в пути к классам сервера. Находиться там тоже запрещено. Зачем это требуется более новой версии?

person Stefan    schedule 08.05.2014
comment
Библиотеки из EAR или WAR добавляются в путь к классам приложений при запуске. Я думаю, у вас проблема с конфигурацией загрузчиков классов. - person Danubian Sailor; 08.05.2014
comment
[5/8/14 10: 12: 42: 866 CEST] 0000004b InjectionProc W CWNEN0047W: Аннотации ресурсов в полях класса org.springframework.web.servlet.DispatcherServlet игнорируются. Аннотации не могли быть получены из-за исключения: java.lang.NoClassDefFoundError: org.springframework.web.context.WebApplicationContext в java.lang.J9VMInternals.verifyImpl (собственный метод) в java.lang.J9VMInternals.verify (J9VMInternals.verternals.j9VMInternals.verify : 93) на java.lang.J9VMInternals.verify (J9VMInternals.java:91) на java.lang.J9VMInternals.prepare (J9VMInternals.java:490) на java.lang.Class.getDeclaredFields (Class.java:605) на com .ibm.wsspi.injectionengine.InjectionProcessor.getAllDeclaredFields (InjectionProcessor.java:554) в com.ibm.wsspi.injectionengine.InjectionProcessor.processAllAnnotations (InjectionProcessor.java:722) в com.ibm.wssineConcessor. .java: 50) на com.ibm.ws.injectionengine.AbstractInjectionEngine.processAnnotations (AbstractInjectionEngine.java:750) на com.ibm.ws.injectionengine.AbstractInjectionEngine.processInjectionMe taData (AbstractInjectionEngine.java:559) в com.ibm.ws.injectionengine.SharedInjectionEngineImpl.processInjectionMetaData (SharedInjectionEngineImpl.java:208) в com.ibm.ws.injectionengine.ReferenceContextImpl.process (ReferenceContext.Impl.java) .ws.webcontainer.webapp.WebAppImpl.populateJavaNameSpace (WebAppImpl.java:1112) в com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize (WebAppImpl.java:328) в com.ibm.ws.webcontainer.WebappImpl.WebappImpl.webapp .addWebApplication (WebGroupImpl.java:88) в com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication (VirtualHostImpl.java:169) в com.ibm.ws.webcontainer.WSWebContainer.addWebApp (WSWebContainer.wsWebContainer.addWebApp (WSWeb:49) ibm.ws.webcontainer.WSWebContainer.addWebApplication (WSWebContainer.java:634) на com.ibm.ws.webcontainer.component.WebContainerImpl.install (WebContainerImpl.java:426) на com.ibm.ws.webImpl.Webcontainer.component start (WebContainerImpl.java:718) на com.i bm.ws.runtime.component.ApplicationMgrImpl.start (ApplicationMgrImpl.java:1173) на com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart (DeployedApplicationImpl.java:1370) на com.ibm.ponents.w DeployedModuleImpl.start (DeployedModuleImpl.java:639) в com.ibm.ws.runtime.component. DeployedApplicationImpl.start (DeployedApplicationImpl.java:968) по адресу com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication (ApplicationMgrImpl.java:772) по адресу com.ibm.ws.runtime.component.ApplicationMgrImpl.java: 1367) на com.ibm.ws.runtime.component.ApplicationMgrImpl.start (ApplicationMgrImpl.java:2172) на com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start (CompositionUnitMgrImpl.java:445) на com.ibm.ws .runtime.component.CompositionUnitImpl.start (CompositionUnitImpl.java:123) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start (CompositionUnitMgrImpl.java:388) в com.ibm.ws.runtime.component.CompositionUnit $ 500 (CompositionUnitMgrImpl.java:116) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl $ 1.run (CompositionUnitMgrImpl.java:663) в com.ibm.ws.security.auth.ContextManagerImpl.runagerImpl.java:45 ) на com.ibm.ws.security.auth.Con textManagerImpl.runAsSystem (ContextManagerImpl.java:5585) в com.ibm.ws.security.core.SecurityContext.runAsSystem (SecurityContext.java:255) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit (CompositionUnit 677) в com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit (CompositionUnitMgrImpl.java:621) в com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication (ApplicationMgrImpl.NorImpl.startApplication (ApplicationMgrImpl.java.Methopl.java. .invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:60) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:37) в java. : 611) в sun.reflect.misc.Trampoline.invoke (MethodUtil.java:49) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:37) в java.lang.reflect.Method.invoke (Method.java:611) в sun.reflect.misc.MethodUtil.invoke (MethodUtil) atjava: javax.management.modelmbean.RequiredModelMBean $ 4.run (RequiredModelMBean.java:1148) в java.security.AccessController.doPrivileged (AccessController.java:252) в com.ibm.oti.security.CheckedAccessControlContext.security ) на sun.misc. JavaSecurityAccessWrapper.doIntersectionPrivilege (JavaSecurityAccessWrapper.java:41) в javax.management.modelmbean.RequiredModelMBean.invokeMethod (RequiredModelMBean.java:1142) в javax.management.quired.Model.java:1142) в javax.management.quired.Model.Model.MB: .interceptor.DefaultMBeanServerInterceptor.invoke (DefaultMBeanServerInterceptor.java:848) в com.sun.jmx.mbeanserver.JmxMBeanServer.invoke (JmxMBeanServer.java:774) в com.ibm.AdminServer.java: 774 1335) в com.ibm.ws.security.util.AccessController.doPrivileged (AccessController.java:118) в com.ibm.ws.management.AdminServiceImpl.invoke (AdminServiceImpl.java:1228) в com.ibm.ws.management .connector.AdminServiceDelegator.invoke (AdminServiceDelegator.java:181) в com.ibm.ws.management.connector.ipc.CallRouter.route (CallRouter.java:247) в com.ibm.ws.management.connector.ipc.IPCConnectorInboundLink .doWork (IPCConnectorInbou ndLink.java:360) в com.ibm.ws.management.connector.ipc.IPCConnectorInboundLink $ IPCConnectorReadCallback.complete (IPCConnectorInboundLink.java:602) - person Stefan; 08.05.2014