【问题标题】:Spring context initializtion failedSpring上下文初始化失败
【发布时间】:2017-03-17 03:47:16
【问题描述】:

我在尝试运行 maven 项目时遇到以下异常

严重:StandardWrapper.Throwable java.lang.NoSuchMethodError: org.springframework.core.JdkVersion.isAtLeastJava15()Z 在 org.springframework.beans.CachedIntrospectionResults.(CachedIntrospectionResults.java:249) 在 org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:144) 在 org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:252) 在 org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:798) 在 org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:651) 在 org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78) 在 org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:63) 在 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:128) 在 javax.servlet.GenericServlet.init(GenericServlet.java:158) 在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1230) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1174) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1066) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5370) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5668) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690) 在 java.util.concurrent.FutureTask.run(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(Unknown Source)

2018 年 6 月 23 日上午 11:26:56 org.apache.catalina.core.StandardContext loadOnStartup 严重:Web 应用程序 [/SpringMvcUser] 中的 Servlet [spring-mvc] 引发 load() 异常 java.lang.NoSuchMethodError: org.springframework.core.JdkVersion.isAtLeastJava15()Z 在 org.springframework.beans.CachedIntrospectionResults.(CachedIntrospectionResults.java:249) 在 org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:144) 在 org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:252) 在 org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:798) 在 org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:651) 在 org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78) 在 org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:63) 在 org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:128) 在 javax.servlet.GenericServlet.init(GenericServlet.java:158) 在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1230) 在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1174) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1066) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5370) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5668) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1700) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1690) 在 java.util.concurrent.FutureTask.run(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(Unknown Source)

帮我解决这个异常

【问题讨论】:

  • 检查你的类路径中是否有旧版本的 spring

标签: spring spring-mvc


【解决方案1】:

org.springframework.core.JdkVersion 类的 Javadoc 说:
已弃用。从 Spring 4.2.1 开始,支持通过反射直接检查所需的 JDK API 变体

在 Spring 版本 4.2.6 中,类 JdkVersion 中没有方法 isAtLeastJava15()

您的某些代码似乎是为旧版本的 Spring 编写的。是在混合不同的版本还是您正在使用的库需要另一个版本?你检查过你的类路径吗?

【讨论】:

  • 感谢您的评论 jeysee,调用是从 spring-jmx-2.0.8.jar 的 getOperationInfo(..) 方法发生的。但是我们只在特定环境中看到这个问题,而不是在所有环境
  • 我建议检查一下您的所有应用程序服务器或您的环境是否都以相同的方式配置。也许其中一些被配置为将特殊的 jar 文件添加到应用程序的类 pat hat 运行时?
猜你喜欢
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 2011-11-23
  • 2016-03-08
相关资源
最近更新 更多