环境是tomcat6.0+MyEclipse6.5
将compiler level选为了6.0
当部署一个新的应用时tomcat启动报如下错:
严重: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/xwdemo,J2EEApplication=none,J2EEServer=none
2009-12-10 13:30:26 org.apache.catalina.startup.HostConfig deployDirectory
严重: Error deploying web application directory xwdemo
java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class com.xwtec.filter.ActionFilter)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1851)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.startup.WebAnnotationSet.loadClassAnnotation(WebAnnotationSet.java:145)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:84)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:57)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1068)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
.....
错误原因是:
tomcat用的是MyEclipse自带的JDK只有5.0,而.class文件是用的JDK6.0编译的,两个编译版本不一致。
解决:
选中myeclipse的window菜单的下拉选项preferences
在preferences对话框中点击MyEclipse Enterprise WorkBench->Servers->Tomcat->Tomcat 6.x->JDK
Tomcat JDK name默认是MyEclipse 自带的,将它改成自己安装的jdk1.6。