Springboot项目出现java.lang.ArrayStoreException的异常分析

作者:JINGBIN_CHEN 时间:2022-05-13 05:48:20 

参考文献:https://www.jb51.net/article/232858.htm

使用springboot 2 构建项目,调试代码的时候出现了如下的报错信息


Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1708)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503)
   at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
   at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1325)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1291)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1193)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1096)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
   at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:818)
   at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:724)
   ... 36 common frames omitted
Caused by: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
   at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
   at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
   at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
   at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
   at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
   at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
   at java.lang.Class.createAnnotationData(Class.java:3521)
   at java.lang.Class.annotationData(Class.java:3510)
   at java.lang.Class.createAnnotationData(Class.java:3526)
   at java.lang.Class.annotationData(Class.java:3510)
   at java.lang.Class.getAnnotation(Class.java:3415)
   at java.lang.reflect.AnnotatedElement.isAnnotationPresent(AnnotatedElement.java:258)
   at java.lang.Class.isAnnotationPresent(Class.java:3425)
   at org.springframework.core.annotation.AnnotatedElementUtils.hasAnnotation(AnnotatedElementUtils.java:573)
   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.isHandler(RequestMappingHandlerMapping.java:177)
   at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:217)
   at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:188)
   at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:129)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1767)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1704)
   ... 50 common frames omitted

第一眼看到这个问题的时候感觉头都比较大,那只能调试断定,新建一个断点,类型是Java Exception Breakpoint,异常类是上面抛出来的java.lang.ArrayStoreException,

通过调试查看是找不到org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration这个类,而AnnotationParser.parseClassValue把异常包装成为Object,然后在sun.reflect.annotation.AnnotationParser.parseClassArray(int, ByteBuffer, ConstantPool, Class


result[i] = parseClassValue(buf, constPool, container);

而这里数组越界了,ArrayStoreException只有越界的Object的类型信息,也就是上面的


java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy

发现是java.lang.ClassNotFoundException: org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration,则加上@ConditionalOnClass的检查就可以了.

准确来说是spring boot2把一些类的package改了:

spring boot 1里类名是:

  • org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration

spring boot 2里类名是:

  • org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration

而我解决的办法就比较简单粗暴,把项目再细分化,把一些有影响的pom项目(activiti-spring-boot-starter-basic)放到一个新的项目中去,独立成一个模块来使用。

以上所述是小编给大家介绍的Springboot项目出现java.lang.ArrayStoreException的异常分析网站的支持!

来源:https://blog.csdn.net/qq_30553773/article/details/81807012

标签:Springboot,java,ArrayStoreException,异常
0
投稿

猜你喜欢

  • Spring Boot 2.X快速整合jpa过程解析

    2021-09-22 15:27:29
  • intellij idea使用git stash暂存一次提交的操作

    2023-03-08 08:30:11
  • 3种C# 加载Word的方法

    2021-06-05 21:06:41
  • Android仿正点闹钟时间齿轮滑动效果

    2022-09-06 09:27:46
  • java信号量控制线程打印顺序的示例分享

    2023-05-09 12:27:38
  • C#异步调用实例小结

    2023-07-16 10:31:03
  • 简单解析java方法在调用在内存中的执行过程

    2022-04-12 15:46:26
  • winform实现五子棋游戏

    2023-05-31 19:14:24
  • C#实现的json序列化和反序列化代码实例

    2022-04-05 22:24:08
  • c#中CAD文件读取实例

    2023-07-23 19:37:59
  • SpringMVC结构简介及常用注解汇总

    2023-10-25 09:16:59
  • Spring bean的实例化和IOC依赖注入详解

    2023-11-23 23:57:15
  • java实现多线程的两种方式继承Thread类和实现Runnable接口的方法

    2022-07-24 04:27:18
  • c#调用存储过程实现登录界面详解

    2023-01-02 22:03:07
  • Java使用二分法进行查找和排序的示例

    2023-03-16 10:16:37
  • SpringBoot访问windows共享文件的方法

    2023-11-08 13:37:13
  • 快速了解hibernate配置文件与映射文件

    2023-11-04 23:02:26
  • C#字符串内存分配与驻留池学习分享

    2022-07-02 12:11:29
  • Swagger及knife4j的基本使用详解

    2023-02-13 09:34:00
  • Java中常用的设计模式之装饰器模式详解

    2021-08-28 07:59:15
  • asp之家 软件编程 m.aspxhome.com