日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springframework报错_应对报错信息的必杀技!

發布時間:2025/3/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springframework报错_应对报错信息的必杀技! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天遇到了一個錯誤,一般的錯誤提示會很明顯,一看就知道是什么問題。今天遇到的這個說實話真的不好找原因,一般在這種情況下該怎么解決呢?

分享下我的思路吧,不一定是最好的,至少有用。

直接上圖吧,下面是報錯信息:

為了方便查看,我把最重要的信息提取出來,如下:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [com/cxytiandi/kitty/web/config/WebAppConfigurer.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy

java.lang.ArrayStoreException這個確實平時很少遇到,看了下源碼,這個是數組存儲異常。比如下圖中我框起來的部分就清楚的表示了在什么場景下會出現這個異常。

也就是在存儲的時候類型不一致,然后就報錯了唄!

第二個需要關注的錯誤信息是WebAppConfigurer.class,這個還算挺明確的,告訴我哪個類有問題,然后我看了下對應的代碼,也就手動的映射了資源路徑而已。

于是我就想,是不是這里面哪個類加載的時候出問題了,我把WebAppConfigurer直接去掉了,但是并沒什么用,后面還是報的相同的錯誤,只不過是提示另一個類了,就是WebMvcAutoConfiguration。

[org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy

所以說這些錯誤信息沒能直接定位問題就是這個原因,我們要關注的還是java.lang.ArrayStoreException這個異常,只要找到這個異常發生的地方就能解決了。

下面只能借助于IDEA強大的調試功能了,增加一個Java Exception Breakpoints了。

然后debug模式重啟,果不其然就報錯的時候就進斷點了。

這下終于找到原因了,parseClassValue的時候出問題了,Class就是

org.springframework.cloud.sleuth.instrument.web.client.feign.TraceFeignClientAutoConfiguration。

這個類是我當時在Sleuth中擴展Sentinel對Feign支持的時候做了一些修改,沒想到居然出了Bug。

下面給大家說明下真正的原因吧,在這個擴展模塊中sentinel的依賴是可選的,如下:

剛好報錯的項目中不需要用到Sentinel,但是用到了Sleuth和Feign,所以TraceFeignClientAutoConfiguration生效了。主要還是Conditional都滿足條件了。

項目中又沒顯示指定依賴Sentinel,這個類自然加載失敗。

所以解決辦法就是要么加Sentinel依賴,要么就是在@ConditionalOnClass中加上Sentinel的類,這樣只有當在Sentinel的類在classpath中存在的時候才會加載,如果項目沒依賴Sentinel那么就不加載,這樣就沒問題了。

原作者姓名:毛橘
原出處:博客園
原文鏈接:當報錯信息看不出原因時,應該怎么辦?教你一招必殺技! - 毛橘 - 博客園

總結

以上是生活随笔為你收集整理的springframework报错_应对报错信息的必杀技!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。