idea中啓動項目 就報異常

問題:通過idea啓動springboot項目,特別乾脆利落的報瞭如下異常,絲毫不留餘地

Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.ApplicationListener : org.springframework.boot.cloud.CloudFoundryVcapEnvironmentPostProcessor
    at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:445)
    at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:427)
    at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:420)
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:273)
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:253)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
    at org.siming.im_core.ImCoreApplication.main(ImCoreApplication.java:16)
Caused by: java.lang.IllegalArgumentException: class org.springframework.boot.cloud.CloudFoundryVcapEnvironmentPostProcessor is not assignable to interface org.springframework.context.ApplicationListener
    at org.springframework.util.Assert.assignableCheckFailed(Assert.java:714)
    at org.springframework.util.Assert.isAssignable(Assert.java:645)
    at org.springframework.util.Assert.isAssignable(Assert.java:676)
    at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:439)
    ... 7 more

Process finished with exit code 1
 

原因如下:

看下圖,有兩個spring-boot版本,2.2.6,2.2.0。

但是呢,我這個項目其實只依賴了2.2.6,那麼爲何會有2.2.0呢?

因爲之前依賴了2.2.0,現在升級到2.2.6,這樣應該沒什麼問題,但是idea應該是沒有自動清理到2.2.0的緩存,導致2個版本在啓動時都被加載了,故找不到合適的CloudFoundryVcapEnvironmentPostProcessor來實例化,然後就報錯了呀

 

如何解決呢?當然就是刪掉多餘的版本啦,刪除下圖中標出的2.2.0版本,保留2.2.6版本,即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章