欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    1. 打開 環(huán)境變量窗口

    右鍵 This PC(此電腦) -> Properties(屬性) -> Advanced system settings(高級系統(tǒng)設(shè)置) -> Environment Variables(環(huán)境變量)...

    2. 新建JAVA_HOME 變量

    點(diǎn)擊 New(新建)... 按鈕

    輸入:

    變量名:JAVA_HOME
    變量值:電腦上JDK安裝的絕對路徑
    

    輸入完畢后點(diǎn)擊 OK。

    JDK 路徑下必須能夠看到如下的文件。

    3. 新建/修改 CLASSPATH 變量

    如果存在 CLASSPATH 變量,選中點(diǎn)擊 Edit(編輯)

    如果沒有,點(diǎn)擊 New(新建)... 新建。

    輸入/在已有的變量值后面添加:

    變量名:CLASSPATH
    變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
    

    點(diǎn)擊 OK 保存。

    4. 修改Path 變量

    由于 win10 的不同,當(dāng)選中 Path 變量的時候,系統(tǒng)會很方便的把所有不同路徑都分開了,不會像 win7 或者 win8 那樣連在一起。

    新建兩條路徑:

    %JAVA_HOME%\bin
    %JAVA_HOME%\jre\bin
    

    4. 檢查 打開 cmd,輸入 java,出現(xiàn)一連串的指令提示,說明配置成功了:

    項目地址

    https://github.com/yinjihuan/kitty-cloud[1]

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

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

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


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

    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 這個確實平時很少遇到,看了下源碼,這個是數(shù)組存儲異常。比如下圖中我框起來的部分就清楚的表示了在什么場景下會出現(xiàn)這個異常。


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

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


    于是我就想,是不是這里面哪個類加載的時候出問題了,我把 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

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

    下面只能借助于 IDEA 強(qiáng)大的調(diào)試功能了,增加一個 Java Exception Breakpoints 了。


    然后 debug 模式重啟,果不其然就報錯的時候就進(jìn)斷點(diǎn)了。



    這下終于找到原因了,parseClassValue 的時候出問題了,Class 就是 org.springframework.cloud.sleuth.instrument.web.client.feign.TraceFeignClientAutoConfiguration。

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

    擴(kuò)展原文鏈接:當(dāng)Spring Cloud Alibaba Sentinel碰上Spring Cloud Sleuth會擦出怎樣的火花

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

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-sentinel</artifactId>
        <optional>true</optional>
    </dependency>

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


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

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


    最后總結(jié)下吧,主要還是要找到真正問題發(fā)生在什么地方,有的時候異常信息給出的并不一定是真正的地方,只是有關(guān)聯(lián)而已。

    當(dāng)你封裝的模塊設(shè)置了 optional=true 的時候,在對應(yīng)的配置類加載生效也需要用@ConditionalOnClass 來進(jìn)行判斷啟用,否則就會出現(xiàn)上面的問題。

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有