在Websphere 8.5上升级到Spring 3.2错误:将忽略DispatcherServlet上的资源注释

时间:2014-05-08 08:42:42

标签: java spring websphere websphere-8

我已尝试在 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更多

1 个答案:

答案 0 :(得分:0)

正如堆栈跟踪所说:

  

由于异常,无法获取注释:java.lang。 NoClassDefFoundError :org.springframework.web.context。 WebApplicationContext

您的spring-web-xyz.jar未加载。确保它位于类路径中,即使用管理应用程序。它应该在这里:服务器 - &gt; ApplicationServers - &gt; Servername - &gt;流程定义 - &gt; Java虚拟机。