问题现象:
原来的Eclipse3.2、JRE1.4环境更新为MyEclipse6.0完整安装包后原先的工程无法正常使用,控制台报错如下所示:
12008-3-13 15:06:35 org.apache.catalina.core.StandardEngine start
2信息: Starting Servlet Engine: Apache Tomcat/5.0.28
32008-3-13 15:06:35 org.apache.catalina.core.StandardHost start
4信息: XML validation disabled
52008-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
72008-3-13 15:06:37 org.apache.catalina.core.StandardContext start
8严重: Error filterStart
92008-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的日志文件夹中的日志,
这里更详细,具体内容如下:
12008-03-13 14:49:40 StandardContext[/dswssb_new]Exception starting filter AuthFilter
2java.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 阅读(6461)
评论(0) 编辑 收藏 所属分类:
Java开发