解決 Unable to create an instance of type [com.sun.faces.config.ConfigureListener]
宣告:每個人的的電腦都會因為電腦環境,版本等因素不同,可能解決方法不通用,請大家多點耐心吧,畢竟是幹這行的,開始學習的時候,我搭建SSM框架很多次,有問題無法解決就重頭搭建,bug是有的,但總有一天能克服。
我遇到的問題
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/NAR_JDBC_DBO]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) ... 7 more Caused by: java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet at java.lang.Class.getDeclaredFields0(Native Method) at java.lang.Class.privateGetDeclaredFields(Class.java:2308) at java.lang.Class.getDeclaredFields(Class.java:1760) at org.apache.catalina.startup.WebAnnotationSet.getDeclaredFields(WebAnnotationSet.java:452) at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:257) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:136) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:66) at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:381) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:858) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:345) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 more Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.RuleSet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) ... 21 more Sep 09, 2012 4:16:55 PM org.apache.catalina.core.ContainerBase startInternal Schwerwiegend: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1128) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.startup.Catalina.start(Catalina.java:675) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: org.apache.catalina.LifecycleException: A child container failed during start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1136) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 more Sep 09, 2012 4:16:55 PM org.apache.catalina.startup.Catalina start Schwerwiegend: Catalina.start: org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.startup.Catalina.start(Catalina.java:675) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 more Caused by: org.apache.catalina.LifecycleException: Failed to start component
裡面令我比較深惡痛疾的基本就是這個單詞 LifecycleException ,出現次數多,看著最煩
經過我網上多方查詢,查詢Unable to create an instance of type [com.sun.faces.config.ConfigureListener]時候(之前執行專案出現的錯誤),找到了三篇給我啟發很大的文章
第一篇文章:com.sun.faces.config.ConfigureListener找不到報錯
第二篇文章:Failed to start component [StandardEngine[Catalina]
第三篇文章:啟動tomcat報錯com.sun.faces.config.ConfigureListener(這篇比較重要,講述會出現這種情況的原因)
解決方法
原因:一般出現這種情況,都是因為JDK版本和tomcat版本衝突(詳情請閱讀第三篇)
本人使用工具:myeclipse2018(已漢化)、jdk1.8、tomcat8.5
第一步:安裝及更換myeclipse自帶JDK
1. 先下載好自己想用的JDK版本,我使用的是jdk-8u91-windows-x64.exe(提取碼:h3i5)
自己可以去網上搜索相關安裝教程
配置java環境,可以看我的另一篇帖子
2. 更換JDK,網上教程挺多的,我推薦一篇帖子 Eclipse或MyEclipse更換jdk版本
第二步:點選有問題的專案——>右鍵——>屬性——>Java構建路徑
將原來的JRE系統庫移除掉(我這個1.8的版本的是已經更換過的,這裡拿來做模板,myeclipse自帶的應該是jdk1.5版本的,將1.5版本的移除掉)
然後新增自己安裝的JDK,新增庫——>JRE系統庫——>下一步
點選環境——>JavaSE-1.8(我安裝的jdk1.8)——>應用並關閉
點選已安裝JRE——>勾選jdk1.8——>應用並關閉
點選完成
重新執行本專案就可以了,自我感覺還比較詳細,有不懂的可以留言評論