java.lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/ServletContainer : Unsupported major.minor version 51.0 (unable to load class org.glassfish.jersey.servlet.ServletContainer)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2892)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1172)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:461)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
主要是版本不对我用的jersey是版本是9.0.1,jdk1.6不支持。换成1.7即可。
需要注意事项:编译的工程jdk版本要和tomcat启动使用的jdk版本一致。以下是我的修改方式:
进入Properties进行修改
然后在tomcathome路径中bin(如我的E:\apache-tomcat-7.0.57\bin)目录下修改
catalina.bat:
修改前:echo Using JAVA_HOME: "%JAVA_HOME%" (我的java_home指向1.6)
修改后:echo Using JAVA_HOME: "D:\Program Files\Java\jdk1.7.0_75"
setclasspath.bat:
修改前:
set _RUNJAVA="%JAVA_HOME%\bin\java"
set _RUNJDB="%JAVA_HOME%\bin\jdb"
修改后:
set _RUNJAVA="D:\Program Files\Java\jdk1.7.0_75\bin\java"
set _RUNJDB="D:\Program Files\Java\jdk1.7.0_75\bin\jdb"