Tomcat не видит драйвер JDBC MS SQL

147
13 апреля 2019, 23:10

В maven-проекте, запускаемом из NetBeans 8.2 подключена зависимость

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>7.0.0.jre10</version>
</dependency>

В сервлете вызывается код

Connection con = java.sql.DriverManager.getConnection(url); 

И дальше идет код работы с таблицами и т.д. Со строкой соединения все в порядке. В обычном java-приложении все работает, а в веб-приложении Tomcat 8 выдает ошибку "No suitable driver found for jdbc:sqlserver:...". Если перед вызовом getConnection() поставить

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

то Tomcat выдает ошибку 500 с вот таким текстом:

java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (unable to load class com.microsoft.sqlserver.jdbc.SQLServerDriver)

Answer 1

Вы скорее всего запускаете под java 8, а библиотека jre10.
Попробуйте или запускайть приложение под java 10 или используйте версию драйвера jre8

https://en.wikipedia.org/wiki/Java_class_file

  • Java SE 10 = 54
  • Java SE 8 = 52
READ ALSO
JavaFX vs. Swing

JavaFX vs. Swing

Давненько не брал в руки шашку, как то решил переписать свою аппу под Android на толстого десктоп клиента и обнаружил, что Swing типа как бы умер

161
spring отказоустойчивость jdbc

spring отказоустойчивость jdbc

Есть две базы(PostgreSQL) дублирующие полностью друг другаВ нашем апи приложении раньше использовался один датасурс, т

178
Указатель стека при рекурсии

Указатель стека при рекурсии

Прошу объяснить, как работает указатель стека при рекурсивном вызове метода из самого себяПишу морской на Java

237