2014-01-19

JTDS 出錯 - Unsupported major.minor version 51.0 (unable to load class net.sourceforge.jtds.jdbc.Driver)

在使用 jtds 連接 MS SQL Server 時發生錯誤。
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.UnsupportedClassVersionError: net/sourceforge/jtds/jdbc/Driver : Unsupported major.minor version 51.0 (unable to load class net.sourceforge.jtds.jdbc.Driver)
 at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:101)
 at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1450)
 ... 47 more
詭異的是在開發本機上不會出錯,而是安裝到測試機上時出錯。

更詭異的是,在前一個使用 jtds 且同樣的開發本機與測試機的專案沒有出錯。

仔細檢查之後發現,前一個專案使用的是 jtds 1.2.4,現在用的是最新的 jtds 1.3.1。
<dependency>
  <groupId>net.sourceforge.jtds</groupId>
  <artifactId>jtds</artifactId>
  <version>1.3.1</version>
  <scope>runtime</scope>
</dependency>
那為什麼本機不會出錯呢?問題出在使用不用的 JDK 版本。

本機使用的是 Java 7,測試機上用的是 Java 6,原來 jtds 1.3 以上得用 Java 7,將專案改回使用 jtds 1.2.4 就沒問題了。
---
---
---

沒有留言:

張貼留言