直接說問題原因吧! 是由於jdk版本不同導致。
問題回顧:
通過eclipse發布一個項目到tomcat預設的運行目錄下,然後通過tomcat直接跑,就出現這類問題。
原因:
我的電腦同時使用兩個jdk版本,預設1.7,eclipse使用的是1.8,,由於項目啟動時有載入類需要jdk1.8的包,1.7不支援。所以導致項目在eclipse直接能夠跑,而在外面的tomcat跑是就出現startup failed due to previous errors的錯誤.
但是這樣的提示資訊問題還是表達比較含糊,下面我們開始重新理思緒,通過查看日誌來分析原因。
為了調試,我們要獲得更詳細的日誌。可以在WEB-INF/classes目錄下建立一個檔案叫logging.properties
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ############################################################ # Handler specific properties. # Describes specific configuration info for Handlers. ############################################################ org.apache.juli.FileHandler.level = FINE org.apache.juli.FileHandler.directory = ${catalina.base}/logs org.apache.juli.FileHandler.prefix = error-debug. java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Tomcat的日誌目錄下會產生error-debug.***.log的檔案。裡面會提供較詳細提示資訊。我的反饋如下:
...Unsupported major.minor version 52.0 (unable to load class com.sdmc.controller.IndexController)...
版本不支援上面類的運行,但是編譯時間使用的是JDK1.8的包.所以eclipse上不會報錯。
這種問題奇葩吧,好了廢話不多說,感慨不大堆。總結是出現類似問題從日誌開始。
如果早養成這樣的習慣也不會讓我耗了這麼久,分分鐘搞定
相關推薦:
http://blog.sina.com.cn/s/blog_826ca0d80102wl3f.html
http://blog.csdn.net/mcpang/article/details/5468386