Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl解決!

說明

詳細錯誤日志:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl
    at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:33)
    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276)
    at org.springframework.boot.validation.MessageInterpolatorFactory.getObject(MessageInterpolatorFactory.java:53)
    at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$ValidatedLocalValidatorFactoryBean.<init>(ConfigurationPropertiesBindingPostProcessor.java:411)
    at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.getValidator(ConfigurationPropertiesBindingPostProcessor.java:368)
    at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.determineValidator(ConfigurationPropertiesBindingPostProcessor.java:352)
    at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:314)
    at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:291)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)

本來這種NoClassDefFoundError、NullPointerException之類的異常都沒有任何解決問題的價值,更沒有必要單獨寫一篇博客來介紹這個問題;但是確實還是想吐槽一下~

問題來源

本工程采用了maven構(gòu)建,查看maven依賴樹的時候發(fā)現(xiàn)很多l(xiāng)ogging沖突,自然而然的利用<exclusion>把不必要的依賴項給去除掉,所有就有了這么一段配置:

 <exclusion>
         <groupId>jboss-logging</groupId>
         <artifactId>org.jboss.logging</artifactId>
  </exclusion>

加上我的hibernate-validator的版本是5.3.5.final,下意識的解決方法就是換個4.3.5版本的包解決就夠了。確實是,換個版本就完美解決了.但是我還是想探個究竟,看是什么妖魔在作怪?。lasspath下也有這個類ConfigurationImpl,但就是創(chuàng)建對象失敗!

下面開始定位

jboss.logging下就這么幾個類:


image.png

莫非ConfigurationImpl強依賴了其中的某個Log?,而不是slf4j/log4j/logback之類的,哪怕你用common-logging也不至于報創(chuàng)建對象失敗。果不其然,請看:


image.png

鏈進去看一下:
image.png

瞬間有一種想打人的沖動,在hibernate-validator一個公共組件里竟然加入自己的日志模板!不得不佩服大佬們的做法~ 不過問題解決就好了!

總結(jié)

遇到這個問題,沒有立馬反應過來,還是花了10來分鐘查看問題。說明自己還有待提升,至少從日志的設(shè)計層面又加深了一層認識。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 你們是三胞胎,初中未見其人,卻聽其名多遍。 我們相遇在初中是你告訴我的,上高中時我才知道是校友,但...
    泡沫_33af閱讀 148評論 0 0
  • 一、前言 spring-boot模塊提供了一些特性用來支持springboot中其他模塊,這些特性包含如下: Sp...
    阿里加多閱讀 647評論 0 5
  • 拍珠寶、拍首飾、拍服裝用什么器材? 其實我想和你說的不是相機,其實最重要的是燈光,你需要去搞一個影室燈,室內(nèi)的室,...
    大攝影視界閱讀 649評論 0 0
  • 這個季節(jié),有淡淡的桂花香氣彌漫在空氣里,和著徐徐劃過臉龐的微風,還有散落在風中的雨滴。我喜歡這樣的季節(jié),安靜而美好...
    楓葉凡閱讀 274評論 0 2

友情鏈接更多精彩內(nèi)容