jfinal運行時報錯分析java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener


這里解釋一下,我用maven jetty運行沒啥問題的項目,當我切換tomcat時候出現如下錯誤。

問題1. - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class

問題2. java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener

   這里大家如果直查詢問題2,相信大家大多看到的解決方式是:檢查輸出環境,右擊項目–>Build Path–>Source,如下

 這種方式解決問題是沒錯,當然你還得檢查一下Deployment Assembly,檢查maven lib包存在等,結果發現自己配的沒問題,但是原因不在這里,那么再回歸到問題1的報錯搜索;

出現這個原因,是因為javaee-web-api版本問題,在pom.xml 去看到,版本是6,當我們把項目和Tomcat的jdk配置成1.6,

網上查到可能是tomcat自身的包沖突了 ,於是我把javax 這個引用注釋之后,發現不報這個錯誤,而出現新的

Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 2, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 11q2w15aa1refzrau0gn85|629274e1, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass 

那么排除包沖突的錯誤了,所以繼續這個引入這個包,檢查版本一切都是jdk 1.6沒毛病時候,發現原來多了一行報錯。webSocket需要1.7及以上的版本

 

這下問題明朗了,那就把6版本升級為7.0,又把項目和tomcat的jdk換成了1.8

 一切OK ,順利啟動。

  原因總結,此項目版本需要jdk 1.6以上版本,但是pom.xml卻配置成了1.6的版本的,所以會導致這個問題。

 本文屬作者原創,如有轉載,請表明出處:https://www.cnblogs.com/mobeisanghai/p/13186975.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM