Tomcat - java.lang.UnsupportedClassVersionError:Unsupported major.minor version 51.0 (unable to load class com.microsoft.sqlserver.jdbc.SQLS

今天使用Tomcat连接sql Server 2008 enterprise的时候,报错:

HTTP Status 500 - Servlet execution threw an exception

type Exception report

message Servlet execution threw an exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception
	spt.servlet.filter.EncodingFilter.doFilter(EncodingFilter.java:24)

root cause

java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver : Unsupported major.minor version 51.0 (unable to load class com.microsoft.sqlserver.jdbc.SQLServerDriver)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2961)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	java.lang.Class.forName0(Native Method)
	java.lang.Class.forName(Class.java:169)
	spt.server.jdbc.db.BasicDB.getConnection(BasicDB.java:260)
	spt.server.jdbc.db.BasicDB.getPreparedStatement(BasicDB.java:268)
	spt.server.jdbc.db.BasicDB.getAQIDayByCityCodeAndDate(BasicDB.java:136)
	spt.service.AQIDayService.getAQIDay(AQIDayService.java:33)
	spt.servlet.JsonServlet.doPost(JsonServlet.java:34)
	spt.servlet.JsonServlet.doGet(JsonServlet.java:53)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	spt.servlet.filter.EncodingFilter.doFilter(EncodingFilter.java:24)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.57 logs.
Apache Tomcat/7.0.57

 JDK的版本号对应:

J2SE 7 = 51 (0x33 hex),

J2SE 6.0 = 50 (0x32 hex),

J2SE 5.0 = 49 (0x31 hex),

JDK 1.4 = 48 (0x30 hex),

JDK 1.3 = 47 (0x2F hex),

JDK 1.2 = 46 (0x2E hex),

JDK 1.1 = 45 (0x2D hex).

由此可知,上述错误是由于jTDS需要jdk7,而你使用的JDK版本不是jdk7。

ref: http://shalousoft.com/go_newsForum.action?op=d3a91dac-6b7c-11e3-8e31-5254001578d1

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。