1. 程式人生 > >Tomcat啟動卡死問題

Tomcat啟動卡死問題

今天上班發現打包專案war包(mvn package命令執行打包)部署到tomcat7,啟動的時候,直接卡住了,沒有任何報錯資訊。其他同事打包卻可以正常啟動。

於是修改日誌跟蹤級別為debug,發現後臺一直在重複載入(進入了死迴圈)。

09:19:00.144 [localhost-startStop-1] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Ignoring bean creation exception on FactoryBean type check: 
org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'userMapper' defined in file [C:\apache-tomcat-7.0.70_wyszf\webapps\wyszf\WEB-INF\classes\com\xykj\dao\UserMapper.class]: 
Unsatisfied dependency expressed through bean property 'sqlSessionFactory': : 
Error creating bean with name 'sqlSessionFactory' defined in URL [file:/C:/apache-tomcat-7.0.70_wyszf/webapps/wyszf/WEB-INF/classes/les/applicationContext.xml]: Invocation of init method failed; nested exception is org.apache.ibatis.type.TypeException: 
The alias 'RandomSample' is already mapped to the value 'com.xykj.model.vo.RandomSample'.; 

詳細檢視日誌,發現出現了一個錯,但是這個異常居然是debug級別的。引起問題的主要原因是:2個package下有一個同名的model類(這個類我做過移動包目錄的操作),但是看了src原始碼目錄下面卻只在model下面有個RandomSample類,為什麼打包的時候會在2個目錄下都存在呢。

檢視mvn package命令執行:

[INFO] Packaging webapp
[INFO] Assembling webapp [quickstart] in [F:\workspaceXytec22222\quickstart_pare
n\quickstart\target\quickstart-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp resources [F:\workspaceXytec22222\quickstart_paren\quickst
art\src\main\webapp]
[INFO] Webapp assembled in [16306 msecs]
[INFO] Building war: F:\workspaceXytec22222\quickstart_paren\quickstart\target\q
uickstart.war
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] quickstart_paren 0.0.1-SNAPSHOT .................... SUCCESS [  0.007 s]
[INFO] quickstart_xylib ................................... SUCCESS [  2.469 s]
[INFO] quickstart 0.0.1-SNAPSHOT .......................... SUCCESS [ 33.262 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 36.141 s
[INFO] Finished at: 2018-05-25T09:56:22+08:00
[INFO] ------------------------------------------------------------------------
發現會 把相關 class檔案和jsp複製到 quickstart-0.0.1-SNAPSHOT 目錄下,然後裝配為一個完整的war包結構的資料夾,最後把這個資料夾打包為war包。 原來存在quickstart-0.0.1-SNAPSHOT的話,應該是做了 覆蓋操作,所以老檔案還是存在的,也在導致上面那個錯誤的產生,所以打包的時候應該先刪除 quickstart-0.0.1-SNAPSHOT資料夾,然後在執行打包 mvn package就正常了。