1. 程式人生 > >Springboot 專案出現java.lang.ArrayStoreException問題思考

Springboot 專案出現java.lang.ArrayStoreException問題思考

使用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問題思考

使用springboot 2 構建專案,除錯程式碼的時候出現瞭如下的報錯資訊 Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean w

專案出現 java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException

注入這個依賴 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> &

Maven專案出現java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory異常的解決方案!

前幾天專案出現的問題: 啟動專案時一直報異常資訊:        java.lang.NoClassDefFoundError:org/apache/commons/fileupload/FileItemFactory.

關於xiang專案匯入出現java.lang.notfoundexception的解決辦法

在自己的專案中出現了這個的問題,剛開始我檢查其他步驟是否出現錯誤,重新匯入專案,重新下載jar包,都沒有效果,用maven中強更新多次也沒有作用,最後一個小的點讓我獲得了成功,很多人在配置eclipse的時候都會把project下的build  automatically 這個選項的

IDEA SpringBoot 打jar包 出現java.lang.ClassNotFoundException

錯誤資訊如下: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| |

在啟動web專案的時候出現java.lang.NoSuchFieldError: TRACE的緣由

首先下你看一下這個異常:NoSuchFieldError 提示的是與專案的log版本發生衝突 我的專案用的是log1.2.8  解決方案是換掉這個版本就可以了我換過之後的是1.2.15 嚴重: Exception sending context initialized ev

Maven專案部署時出現java.lang.ClassNotFoundException

從SVN上檢出的Maven專案,在部署到tomcat中執行時,控制檯報如下錯誤: 嚴重: Error configuring application listener of class org.springframework.web.context.Con

weblogic12C出現java.lang.ArrayIndexOutOfBoundsException: 48188”

pan lan jar包 arr nds 問題 pop track images 最近將10G的一個項目轉移到12C出現數組越界的問題: 解決辦法: jaxen-1.1.1.jarxom-1.0.jaricu4j-2.6.1.jar 把這三個ja

ssh框架出現Java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I錯誤

過程 err 比較 nat config hibernate 性能 user erro   原因:因為Struts自帶的antlr-2.7.2.jar,比Hibernate自帶的antlr-2.7.7.jar的版本要低,存在jar包沖突現象,因此要刪除前一個低版本的。   

BeanUtils出現Java.lang.NoClassDefFoundError解決

ons web項目 lang com 發生 noclass 導入 cat 導致 問題描述: javaWeb項目中導入了BeanUtils的兩個包,但是還是出現Java.lang.NoClassDefFoundError: org/apache/commons/beanuti

jmeter出現java.lang.OutOfMemoryError: Java heap space的解決辦法

space jmeter blank 容易 設備 lan xmx 腳本 解決 大並發或者循環次數過多的時候,jmeter容易出現 java.lang.OutOfMemoryError: Java heap space這樣的異常,其中修改jmeter.bat 或者jmeter

struts/spring偶爾出現java.lang.IllegalStateException

prot 導致 str 如果 struts 單例對象 cep esp 信息 異常信息: java.lang.IllegalStateException:Cannot call sendRedirect() after the response has been commi

出現java.lang.Exception: java.lang.RuntimeException: java.lang.NoSuchMethodException: com.web.visit.main.ClickVist$VisitMapper.<init>()的問題

圖片 init mapr img 內部類 div ava 執行 沒有 執行mapreduce報錯java.lang.Exception: java.lang.RuntimeException: java.lang.NoSuchMethodException: com.

深入Spring Boot: 怎樣排查 java.lang.ArrayStoreException

throwable 出錯 get long example 信息 導入 caused ant java.lang.ArrayStoreException 分析 這個demo來說明怎樣排查一個spring boot 1應用升級到spring boot 2時可能出現的

在Servlet使用getServletContext()獲取ServletContext對象出現java.lang.NullPointerException(空指針)異常的解決辦法

是我 沒有 AS pre 代碼 erl fig post exceptio 今天遇到了一個在servlet的service方法中獲取ServletContext對象出現java.lang.NullPointerException(空指針)異常,代碼如下 //獲取Se

idea調試springmvc出現java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

找到 解決辦法 解決 tex list lis con org AS idea調試springmvc出現java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListen

自己遇到過的出現java.lang.StackOverflowError的原因

方法 .get obj jsonarray json ack getjson 出現 equals public static JSONArray geth24Weather(String result) {//獲取當天24小時以及第二天的天氣結果對象

使用Junit測試一個 spring靜態工廠實例化bean 的例子,所有代碼都沒有問題,但是出現java.lang.IllegalArgumentException異常

沒有 異常 分享 article java exce 技術分享 實例 image 使用Junit測試一個spring靜態工廠實例化bean的例子,所有代碼都沒有問題,但是出現 java.lang.IllegalArgumentException 異常, 如下圖所示:  

調用android的getColor()方法出現 java.lang.NoSuchMethodError: android.content.res.Resources.getColor

sdn targe drawable ava source 添加 andro content 鏈接 1.java.lang.NoSuchMethodError: android.content.res.Resources.getDrawable/getColor或者 jav