問題現象:
原來的Eclipse3.2、JRE1.4環境更新為MyEclipse6.0完整安裝包后原先的工程無法正常使用,控制臺報錯如下所示:
1
2008-3-13 15:06:35 org.apache.catalina.core.StandardEngine start
2
信息: Starting Servlet Engine: Apache Tomcat/5.0.28
3
2008-3-13 15:06:35 org.apache.catalina.core.StandardHost start
4
信息: XML validation disabled
5
2008-3-13 15:06:36 org.apache.catalina.loader.WebappClassLoader validateJarFile
6
信息: validateJarFile(D:\workspace\dswssb_new\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
7
2008-3-13 15:06:37 org.apache.catalina.core.StandardContext start
8
嚴重: Error filterStart
9
2008-3-13 15:06:37 org.apache.catalina.core.StandardContext start
10
嚴重: Context startup failed due to previous errors
然后工程在Tomcat中無法正常啟動,上面的第8行提示Error filterStart錯誤,但是在工程中將web.xml中所有的filter相關的配置項刪除,
刪除后仍然是無法啟動,報錯依舊。
這個時候才想起來,控制臺的日志不夠完全,然后去查找Tomcat的日志文件夾中的日志,
這里更詳細,具體內容如下:
1
2008-03-13 14:49:40 StandardContext[/dswssb_new]Exception starting filter AuthFilter
2
java.lang.UnsupportedClassVersionError: cn/tohot/ltax/wssb/mvc/login/AuthFilter (Unsupported major.minor version 49.0)
3
at java.lang.ClassLoader.defineClass0(Native Method)
4
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
5
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
6
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
7
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
8
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
9
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
10 .....
這里面的關鍵部分是
Unsupported major.minor version 49.0,搜索之后發現是因為這里面的編譯使用了更高版本的JRE,
然后我開始在Eclipse的Window->Reference中進行配置,配置了Java->Installed JREs,添加了1.4的JRE,問題依舊,
然后修改TOMCAT插件調用的JRE,問題依舊,倒騰了很久,依舊無法正常解決,后來考慮可能是新版的MyEclipse中自帶了高版本的JRE,
于是刪除高版本的JRE,還是沒有解決。最后發現這里面提示的信息是指編譯的文件采用了高版本的JRE,才想起來工程的編譯環境的設置,
在工程的屬性中,設置Java Complier中才發現,原來安裝MyEclipse6.0后采用了默認的高版本的JRE編譯環境,
給工程設置了獨立的編譯環境屬性后,問題解決。
另外,控制臺中輸出的錯誤:
1
信息: validateJarFile(D:\workspace\dswssb_new\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
產生的原因是Tomcat自帶了servlet-api.jar這個包,而工程中lib庫中也有一個servlet-api.jar包,
因此導致在加載的時候沖突,Tomcat服務器沒有加載工程中servlet-api.jar包,而是加載了Tomcat自帶的那個。
如果需要的話,可以將Tomcat自帶的包刪除,不過,這里并不影響使用,可以忽略。
posted on 2008-03-13 16:27
Jedliu's Blog 閱讀(6467)
評論(0) 編輯 收藏 所屬分類:
Java開發