随笔-4  评论-11  文章-0  trackbacks-0
问题现象:
原来的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 阅读(6455) 评论(0)  编辑  收藏 所属分类: Java开发

只有注册用户登录后才能发表评论。


网站导航: