我已尝试在 WebSphere 8.5 <上将 Spring 版本从 3.1.2 升级到 3.2.8 < / strong>,但我收到了错误:
CWNEN0047W:在字段上的资源注释 org.springframework.web.servlet.DispatcherServlet类将是 忽略。由于这个原因,无法获得注释 异常:java.lang.NoClassDefFoundError: org.springframework.web.context.WebApplicationContext
jar spring-web-3.2.8.RELEASE.jar
出现在WAR / WEB-INF / lib目录中。存档未损坏,WebApplicationContext
类存在。一切都像以前一样,只有春天版本更高。
一切正在使用Spring 3.1.2 ,具有相同的maven构建配置和EAR描述符!但是在更改Spring版本之后(仅此而已),会出现上述错误。
在Websphere上升级Spring版本时,有什么特别之处吗?或者它只是一种不兼容性?
那个电话来自JmxMBeanServer
。它来自Web应用程序初始化阶段,从IBM RAD部署/更新EAR时。完整堆栈跟踪包括:
[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 at java.lang.J9VMInternals.verifyImpl(Native Method)at java.lang.J9VMInternals.verify(J9VMInternals.java:93)at java.lang.J9VMInternals.verify(J9VMInternals.java:91)at java.lang.J9VMInternals.prepare(J9VMInternals.java:490)at java.lang.Class.getDeclaredFields(Class.java:605)at com.ibm.wsspi.injectionengine.InjectionProcessor.getAllDeclaredFields(InjectionProcessor.java:554) 在 com.ibm.wsspi.injectionengine.InjectionProcessor.processAllAnnotations(InjectionProcessor.java:722) 在 com.ibm.wsspi.injectionengine.InjectionProcessorContextImpl.processAllAnnotations(InjectionProcessorContextImpl.java:50) 在 com.ibm.ws.injectionengine.AbstractInjectionEngine.processAnnotations(AbstractInjectionEngine.java:750) 在 com.ibm.ws.injectionengine.AbstractInjectionEngine.processInjectionMetaData(AbstractInjectionEngine.java:559) 在 com.ibm.ws.injectionengine.SharedInjectionEngineImpl.processInjectionMetaData(SharedInjectionEngineImpl.java:208) 在 com.ibm.ws.injectionengine.ReferenceContextImpl.process(ReferenceContextImpl.java:838) 在 com.ibm.ws.webcontainer.webapp.WebAppImpl.populateJavaNameSpace(WebAppImpl.java:1112) 在 com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:328) 在 com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88) 在 com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169) 在 com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749) 在 com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634) 在 com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426) 在 com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718) 在 com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1173) 在 com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370) 在 com.ibm.ws.runtime.component.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.startApplicationDynamically(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.CompositionUnitMgrImpl.access $ 500(CompositionUnitMgrImpl.java:116) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl $ 1.run(CompositionUnitMgrImpl.java:663) 在 com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:5459) 在 com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:5585) 在 com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:255) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:677) 在 com.ibm.ws.runtime.component.CompositionUnitMgrImpl.startCompositionUnit(CompositionUnitMgrImpl.java:621) 在 com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1259) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 在java.lang.reflect.Method.invoke(Method.java:611)at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:49)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 在java.lang.reflect.Method.invoke(Method.java:611)at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:256)at javax.management.modelmbean.RequiredModelMBean中的$ 4.run(RequiredModelMBean.java:1148) 在 java.security.AccessController.doPrivileged(AccessController.java:252) 在 com.ibm.oti.security.CheckedAccessControlContext.securityCheck(CheckedAccessControlContext.java:30) 在 sun.misc.JavaSecurityAccessWrapper.doIntersectionPrivilege(JavaSecurityAccessWrapper.java:41) 在 javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1142) 在 javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:995) 在 com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:848) 在 com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:774) 在 com.ibm.ws.management.AdminServiceImpl $ 1.run(AdminServiceImpl.java: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(IPCConnectorInboundLink.java:360) 在 com.ibm.ws.management.connector.ipc.IPCConnectorInboundLink $ IPCConnectorReadCallback.complete(IPCConnectorInboundLink.java:602)
在 com.ibm.ws.ssl.channel.impl.SSLReadServiceContext $ SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784) 在 com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 在 com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 在 com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 在com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)at at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)at at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 在com.ibm.io.async.ResultHandler $ 2.run(ResultHandler.java:905)at com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1815)引起: 抛出java.lang.ClassNotFoundException: org.springframework.web.context.WebApplicationContext at java.net.URLClassLoader.findClass(URLClassLoader.java:434)at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:204) 在java.lang.ClassLoader.loadClassHelper(ClassLoader.java:688)at java.lang.ClassLoader.loadClass(ClassLoader.java:667)at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:119) 在java.lang.ClassLoader.loadClass(ClassLoader.java:650)at 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)at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:584) 在java.lang.ClassLoader.loadClass(ClassLoader.java:650)at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:584) 在java.lang.ClassLoader.loadClass(ClassLoader.java:650)... 72更多
答案 0 :(得分:0)
正如堆栈跟踪所说:
由于异常,无法获取注释:java.lang。 NoClassDefFoundError :org.springframework.web.context。 WebApplicationContext
您的spring-web-xyz.jar未加载。确保它位于类路径中,即使用管理应用程序。它应该在这里:服务器 - &gt; ApplicationServers - &gt; Servername - &gt;流程定义 - &gt; Java虚拟机。