1. 程式人生 > >嚴重: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/educatio,J2EEApplicatio

嚴重: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/educatio,J2EEApplicatio

嚴重: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/web ,J2EEApplication=none,J2EEServer=none java.lang.reflect.InvocationTargetException         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)         at java.lang.reflect.Method.invoke(Method.java:597)         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.UnsupportedClassVersionError: com/baby/util/Onli neUserListenNew : Unsupported major.minor version 51.0 (unable to load class com .baby.util.OnlineUserListenNew)         at org.apache.catalina.loader.WebappClassLoader.findClassInternal(Webapp ClassLoader.java:2531)         at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoa der.java:1010)         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa der.java:1483)         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa der.java:1361)         at org.apache.catalina.startup.WebAnnotationSet.loadClassAnnotation(WebA nnotationSet.java:145)         at org.apache.catalina.startup.WebAnnotationSet.loadApplicationListenerA nnotations(WebAnnotationSet.java:73)         at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotatio ns(WebAnnotationSet.java:56) 問題原因是class版本太高問題,因為我是用eclipse-ee開發的,在eclipse-ee中,我用的是jdk7開發的,因此把專案部署到tomcat中時,預設用的是專案的jdk7進行編譯java檔案,然後和專案一起釋出到tomcat裡面,這個時候如果是在eclipse-ee中啟動tomcat,那麼此時tomcat用的是eclipse-ee中專案預設的jdk,因此也是用jdk7進行啟動tomcat的,因此可以正常啟動tomcat。 但是如果單獨啟動tomcat,因為我在電腦屬性裡面設定的java_home是jdk6,這個時候,如果單獨啟動tomcat,那麼tomcat用的就是電腦屬性裡面的java_home,即jdk6,那麼在啟動的過程中,tomcat在載入class檔案時,就會報class版本錯誤,如上“Unsupported major.minor version 51.0”,因為java是向下相容的,即jdk7能相容小於jdk7編譯的class檔案,jdk6能相容小於jdk6編譯的class檔案,jdk6能不能相容jdk7編譯的class檔案,所以報上面錯誤。         解決辦法                   1、修改eclipse-ee中專案用的jdk7為jdk6,                   2、修改電腦屬性裡面設定的java_home是jdk7                   3、修改catalina.bat,在第二行,加上下面這句話 set JAVA_HOME="D:\soft\apache-tomcat-6.0.26\jdk1.7.0_03"      即修改tomcat使用jdk7啟動