問(wèn)題現(xiàn)象:
原來(lái)的Eclipse3.2、JRE1.4環(huán)境更新為MyEclipse6.0完整安裝包后原先的工程無(wú)法正常使用,控制臺(tái)報(bào)錯(cuò)如下所示:
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
嚴(yán)重: Error filterStart
9
2008-3-13 15:06:37 org.apache.catalina.core.StandardContext start
10
嚴(yán)重: Context startup failed due to previous errors
然后工程在Tomcat中無(wú)法正常啟動(dòng),上面的第8行提示Error filterStart錯(cuò)誤,但是在工程中將web.xml中所有的filter相關(guān)的配置項(xiàng)刪除,
刪除后仍然是無(wú)法啟動(dòng),報(bào)錯(cuò)依舊。
這個(gè)時(shí)候才想起來(lái),控制臺(tái)的日志不夠完全,然后去查找Tomcat的日志文件夾中的日志,
這里更詳細(xì),具體內(nèi)容如下:
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 .....
這里面的關(guān)鍵部分是
Unsupported major.minor version 49.0,搜索之后發(fā)現(xiàn)是因?yàn)檫@里面的編譯使用了更高版本的JRE,
然后我開始在Eclipse的Window->Reference中進(jìn)行配置,配置了Java->Installed JREs,添加了1.4的JRE,問(wèn)題依舊,
然后修改TOMCAT插件調(diào)用的JRE,問(wèn)題依舊,倒騰了很久,依舊無(wú)法正常解決,后來(lái)考慮可能是新版的MyEclipse中自帶了高版本的JRE,
于是刪除高版本的JRE,還是沒(méi)有解決。最后發(fā)現(xiàn)這里面提示的信息是指編譯的文件采用了高版本的JRE,才想起來(lái)工程的編譯環(huán)境的設(shè)置,
在工程的屬性中,設(shè)置Java Complier中才發(fā)現(xiàn),原來(lái)安裝MyEclipse6.0后采用了默認(rèn)的高版本的JRE編譯環(huán)境,
給工程設(shè)置了獨(dú)立的編譯環(huán)境屬性后,問(wèn)題解決。
另外,控制臺(tái)中輸出的錯(cuò)誤:
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
產(chǎn)生的原因是Tomcat自帶了servlet-api.jar這個(gè)包,而工程中l(wèi)ib庫(kù)中也有一個(gè)servlet-api.jar包,
因此導(dǎo)致在加載的時(shí)候沖突,Tomcat服務(wù)器沒(méi)有加載工程中servlet-api.jar包,而是加載了Tomcat自帶的那個(gè)。
如果需要的話,可以將Tomcat自帶的包刪除,不過(guò),這里并不影響使用,可以忽略。
posted on 2008-03-13 16:27
Jedliu's Blog 閱讀(6467)
評(píng)論(0) 編輯 收藏 所屬分類:
Java開發(fā)