IntelliJ IDEA 部署web項目時target目錄下jar包沖突問題

項目是一個基于maven的web項目,依賴于公司的核心包。問題是在eclipse下部署成功,但在idea下部署失敗。報錯如下:

2017-11-16 17:08:28 hrp_mp_scheduler [org.springframework.web.context.ContextLoader.initWebApplicationContext:353] - [ERROR] Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath*:config/kyee-include-all.xml]
Offending resource: class path resource [applicationContext.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:config/core/scheduler.xml]
Offending resource: URL [jar:file:/Users/huangpeng/workspace/tomcat/apache-tomcat-8.0.43/webapps/hrp_mp_scheduler/WEB-INF/lib/kyee_nextframework_core-1.0.70.jar!/config/kyee-include-all.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Only one AsyncAnnotationBeanPostProcessor may exist within the context.
Offending resource: class path resource [config/core/scheduler.xml]

調查發現把項目部署在eclipse中時,lib目錄下的jar包是正常的;部署到idea中以后,tomcat目錄下webapps,進入到項目目錄中,發現lib目錄下有兩個核心包,一個老版本,一個新版本。

于是到idea中查看了target目錄下,是有兩個核心包的,核心包被加載了兩次,當然沖突了。下圖是target目錄:

image.png

所以就手動刪除了老版本的核心包,重啟以后項目就跑起來了。

image.png

沖突的jar包會顯示成這樣,一個是灰色的表示正常,另一個是黑色的應該的沒什么用,但是卻被錯誤的引入了進來,導致了項目無法啟動,所以要將黑色的包刪掉。

后記:
剛開始看日志報錯一直以為是配置錯誤,還在jar包里看配置文件看是否哪里重復了,最后還是耐心看日志,發現在報錯前已經加載了一遍配置文件,而且日志上寫的很清楚,第一次加載的是老版本核心包的配置文件,然后加載新版本的配置文件就報錯了。
所以排查問題時不能只看報錯的那一行,要聯系上下文,前后都得看一看。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,971評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Jar包沖突是老生常談的問題,幾乎每一個Java程序猿都不可避免地遇到過,并且也都能想到通常的原因一般是同一個Ja...
    sherlockyb閱讀 37,451評論 1 65
  • 創新要形成機制。企業是否鼓勵創新,有利有弊。試想,如果在一個企業內,特別鼓勵創新,那么所有人都去搞創新了,普通...
    甜甜蜜蜜_2e27閱讀 1,558評論 0 0