• org.springframework.core.annotation.AnnotationUtils.clearCache()V 错误解决(SSM项目)


    org.springframework.core.annotation.AnnotationUtils.clearCache 错误解决

    问题描述

    之前在写了一些 SSM 的项目之后, 自己搭了一个简单的 CRUD+邮件注册和登录 的脚手架,前几天运行过一次结果良好, 今天想迁移一部分东西到 SpringBoot 的项目上结果死活没法用, 出现如题这个问题, 折磨了人近4个小时不断查资料。。。
    我遇到的问题跟大多数回答和博客上的解决方法并不一样, 由于没遇到过这种问题, 就一直以为是 maven依赖冲突的原因 ,但是结果显然没有这么简单。过程忽略, 直接说结果吧。

    • 报错日志

      java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.clearCache()V
      	at org.springframework.context.support.AbstractApplicationContext.resetCommonCaches(AbstractApplicationContext.java:915)
      	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:575)
      	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:409)
      	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:291)
      	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
      	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4768)
      	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230)
      	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
      	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
      	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
      	at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1783)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:293)
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:460)
      	at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:408)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:293)
      	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
      	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
      	at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
      	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
      	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
      	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)
      	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
      	at sun.rmi.transport.Transport$1.run(Transport.java:200)
      	at sun.rmi.transport.Transport$1.run(Transport.java:197)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
      	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:748)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53

    解决办法

    方法一

    如同网上大多数博文列举的方法, 查看 maven 依赖的包是否发生冲突。

    点开如下图所示 maven 管理界面 或者 打开 pom.xml 查看是否有

    • 依赖重复导入
    • spring-context:5.0 与 spring-context:4.8 重复导入。
    • Spring依赖包版本不一致
    • spring-context:5.0 spring-bean:4.0 则为不一致
    • Spring依赖包循环依赖的情况
    • 比如: spring-webmvc 依赖了 spring-web, 则需要检查 spring-webmvc 和 spring-web 是否是相同版本。
    • spring-context-support 依赖 spring-context, 则需要检查 spring-context-support 和 spring-context 是否是相同版本。


    方法二

    显然如果我的问题像方法一样, 肯定不会花我 4个小时时间了 img
    非常令人无语的是, 这个问题最终并不需要其他专业的解决方法, 只要把项目重新导入或者迁移到新的项目就好了。。。

    也即这个问题实质上是导入过程或者缓存的问题 , 总之很玄学 , 请恕我无法理解。 也即这个问题实质上是导入过程或者缓存的问题, 总之很玄学, 请恕我无法理解。 也即这个问题实质上是导入过程或者缓存的问题,总之很玄学,请恕我无法理解。

    • 迁移项目

      我这里把报错的项目复制粘贴到一个空的新项目中运行就 OK 了。
      img

    • 重新导入项目

      这里推荐把有问题的项目复制到另一个位置, 然后重新导入到 IDEA。
      在这里插入图片描述


    Success

    结果如下, 说多了都是泪, 哎。。。
    在这里插入图片描述


  • 相关阅读:
    提高采购效率,采购管理的五大原则及实现方法
    计算机毕业设计选什么题目好?springboot 试题库管理系统
    公关世界杂志公关世界杂志社公关世界编辑部2022年第14期目录
    CVPR 2022 论文和开源项目合集
    java项目开发实例ssm流浪猫狗|流浪狗宠物救助网站
    mysql双主双从读写分离
    卷积神经网络(CNN)简介
    [附源码]计算机毕业设计springboot教育企业网站
    计算机Java毕设项目-PPT答辩篇
    从零开始做好个人记账
  • 原文地址:https://blog.csdn.net/qq_40491534/article/details/126918627