亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決因缺少Log4j依賴導(dǎo)致應(yīng)用啟動(dòng)失敗的問題

 更新時(shí)間:2017年04月03日 12:00:37   作者:rhwayfunn  
日志是應(yīng)用軟件中不可缺少的部分,Apache的開源項(xiàng)目log4j是一個(gè)功能強(qiáng)大的日志組件,提供方便的日志記錄。但這篇文章不是介紹Log4j,這篇文章主要介紹了關(guān)于因缺少Log4j依賴導(dǎo)致應(yīng)用啟動(dòng)失敗問題的相關(guān)資料,需要的朋友可以參考下。

前言

最近公司在做版本升級(jí),所有對aaa(指代某個(gè)內(nèi)部依賴)有依賴的應(yīng)用需要排除掉。從這點(diǎn)看,幾乎不會(huì)有什么問題,因?yàn)閮H僅是排除一些maven依賴而已嘛。但是,一位同學(xué)在排除依賴的時(shí)候,僅僅是把a(bǔ)aa排除了,而沒有在測試環(huán)境進(jìn)行測試,在線上發(fā)布的時(shí)候,日志報(bào)dubbo服務(wù)注冊失?。⊕伄惓:蚫ubbo admin沒有看到注冊的服務(wù)),導(dǎo)致應(yīng)用啟動(dòng)失?。ɑ貪L后正常),影響正常業(yè)務(wù)5分鐘。

事后排查這個(gè)問題的時(shí)候發(fā)現(xiàn),有兩個(gè)原因?qū)е铝藨?yīng)用啟動(dòng)失?。?/strong>

  1. 去除aaa依賴后,導(dǎo)致應(yīng)用有多個(gè)slf4j的依賴
  2. 去除aaa依賴后,導(dǎo)致log4j依賴缺失(應(yīng)用使用logback)

第一點(diǎn)很好解決,因?yàn)閺膃rror日志可以直接知道原因,修改pom依賴并把非logback實(shí)現(xiàn)的日志依賴排掉就好了。

但是,第二點(diǎn)折騰了一下午才最終確定是因?yàn)閘og4j依賴缺失導(dǎo)致的。

下面把排查過程記錄如下:

把應(yīng)用回滾后正常,那么問題肯定出在回滾之后的提交上,經(jīng)過和正常版本的代碼的diff,發(fā)現(xiàn)只有zkclient的版本不同。

異常版本的依賴是如下:

<dependency>
 <groupId>com.github.sgroschupf</groupId>
 <artifactId>zkclient</artifactId>
 <version>0.1</version>
</dependency>

正常的依賴是:

<dependency>
 <groupId>com.101tec</groupId>
 <artifactId>zkclient</artifactId>
 <version>0.10</version>
</dependency>

分析到這里,已經(jīng)有了解決思路,一種是直接修改zkclient的依賴,一種是繼續(xù)分析為什么兩種版本的不同會(huì)導(dǎo)致應(yīng)用啟動(dòng)失敗。通過繼續(xù)分析,發(fā)現(xiàn)groupId為com.101tec的日志框架使用的是Slf4j,而groupId為com.github.sgroschupf的日志框架是Log4j,而那位同事在排除aaa依賴的時(shí)候順便把log4j的依賴也排掉了,所以才導(dǎo)致應(yīng)用啟動(dòng)失敗。

com.github.sgroschupf的log框架:

com.101tec的log框架:

再回到剛開始dubbo注冊服務(wù)失敗的問題,一切都明了了——因?yàn)榘裭og4j依賴排掉了,導(dǎo)致dubbo使用zkclient注冊服務(wù)的時(shí)候因?yàn)闊o法初始化Log4j,導(dǎo)致無法初始化ZkClient,進(jìn)而導(dǎo)致dubbo注冊失敗。

通過這個(gè)事件,獲得如下教訓(xùn):

  1. 盡量在一個(gè)系統(tǒng)內(nèi)使用同一個(gè)日志框架
  2. 如果是依賴jar有不同的日志實(shí)現(xiàn),使用更高版本的依賴
  3. 發(fā)布之前一定要記得在測試環(huán)境進(jìn)行測試

總結(jié)

以上就是關(guān)于因缺少Log4j依賴導(dǎo)致應(yīng)用啟動(dòng)失敗的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Mybatis防止sql注入原理分析

    Mybatis防止sql注入原理分析

    這篇文章主要介紹了Mybatis防止sql注入原理分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java8 中使用Stream 讓List 轉(zhuǎn) Map使用問題小結(jié)

    Java8 中使用Stream 讓List 轉(zhuǎn) Map使用問題小結(jié)

    這篇文章主要介紹了Java8 中使用Stream 讓List 轉(zhuǎn) Map使用總結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-06-06
  • Java中Mybatis-Plus使用方式介紹

    Java中Mybatis-Plus使用方式介紹

    Mybatis-Plus提供了多種方式來執(zhí)行SQL,包括使用注解、XML映射文件和?Lambda表達(dá)式等,其中,使用Lambda表達(dá)式是Mybatis-Plus推薦的方式,因?yàn)樗又庇^和類型安全,,需要的朋友可以參考下
    2023-06-06
  • IDEA斷點(diǎn)調(diào)試,斷點(diǎn)不起作用的解決

    IDEA斷點(diǎn)調(diào)試,斷點(diǎn)不起作用的解決

    這篇文章主要介紹了IDEA斷點(diǎn)調(diào)試,斷點(diǎn)不起作用的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Spring實(shí)戰(zhàn)之方法級(jí)別緩存用法示例

    Spring實(shí)戰(zhàn)之方法級(jí)別緩存用法示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之方法級(jí)別緩存用法,結(jié)合實(shí)例形式分析了spring方法級(jí)別緩存配置、屬性文件、領(lǐng)域模型及相關(guān)使用技巧,需要的朋友可以參考下
    2020-01-01
  • Spring Cloud Feign實(shí)現(xiàn)文件上傳下載的示例代碼

    Spring Cloud Feign實(shí)現(xiàn)文件上傳下載的示例代碼

    Feign框架對于文件上傳消息體格式并沒有做原生支持,需要集成模塊feign-form來實(shí)現(xiàn),本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2022-02-02
  • Java線程中sleep和wait的區(qū)別詳細(xì)介紹

    Java線程中sleep和wait的區(qū)別詳細(xì)介紹

    Java中的多線程是一種搶占式的機(jī)制,而不是分時(shí)機(jī)制。搶占式的機(jī)制是有多個(gè)線程處于可運(yùn)行狀態(tài),但是只有一個(gè)線程在運(yùn)行
    2012-11-11
  • Java中的注解機(jī)制Annotation詳解

    Java中的注解機(jī)制Annotation詳解

    這篇文章主要介紹了Java中的注解機(jī)制Annotation詳解,  Java Annotation 是 Java 語言中的一種 元數(shù)據(jù)機(jī)制,它可以在代碼中添加額外的信息,以便于程序的理解和處理,Annotation 可以用來描述類、方法、屬性等各種程序的特性,需要的朋友可以參考下
    2023-10-10
  • SpringBoot Admin用法實(shí)例講解

    SpringBoot Admin用法實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于SpringBoot Admin用法實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-10-10
  • RabbitMQ進(jìn)階之消息可靠性詳解

    RabbitMQ進(jìn)階之消息可靠性詳解

    這篇文章主要介紹了RabbitMQ進(jìn)階之消息可靠性詳解,abbitmq消息的投遞過程中,怎么確保消息能不丟失,這是一個(gè)很重要的問題,哪怕我們做了Rabbitmq持久化,也不能保證我們的業(yè)務(wù)消息不會(huì)被丟失,需要的朋友可以參考下
    2023-08-08

最新評(píng)論