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

 

posted @ 2020-06-24 12:33  漠北桑海  阅读(1149)  评论(0编辑  收藏  举报