HTTP-статус 500 - Java Runtime Environment (JRE) версии 1.7 не поддерживается этим драйвером

Я пытаюсь получить доступ к MS SQL Server 2005 из файла сервлета. Я использую драйвер JDBC 4.0. Я уже добавил файлы JAR sqljdbc.jar и sqljdbc4.jar в папку Tomcat /lib.

Но при запуске кода я получаю сообщение об ошибке

HTTP-статус 500 - Java Runtime Environment (JRE) версии 1.7 не поддерживается этим драйвером. Используйте библиотеку классов sqljdbc4.jar, которая поддерживает JDBC 4.0.

Как это вызвано и как я могу его решить?

Мой код:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = conn =   DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=school;user=sa;password=123");
PrintWriter pwOut = res.getWriter();
pwOut.println("Connected");
Statement st = conn.createStatement();
String searchCriteria = req.getParameter("txtSearch");
ResultSet rs = st.executeQuery("select * from student");
res.setContentType("text/html");

Ответ 1

Сообщение об ошибке довольно ясно. Tomcat использует неправильный драйвер.

Вы заявляете, что скопировали sqljdbc.jar и sqljdbc4.jar в папку Tomcat lib. Скорее всего, это причина вашей проблемы.

Вам только нужен sqljdbc4.jar, в противном случае Tomcat выбирает неправильный.

Попробуйте удалить sqljdbc.jar из папки Tomcat lib

Ответ 2

Вот мой код для подключения java к серверу SQL Server 2012

Вам нужен только sqljdbc4.jar, который доступен на официальном веб-сайте Microsoft. Вот ссылка:

http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.exe

Он содержит 2 файла jar, и я пытаюсь использовать sqljdbc4.jar. Это код, который я использую для подключения:

package com.Sql.ConnectDB;

import java.sql.*;
public class DbClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try{
            **String url="jdbc:sqlserver://localhost;databaseName=Student";**//important
            String user="username";
            String pass="password";
            **Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");**//important
            Connection con=DriverManager.getConnection(url,user,pass);
            System.out.println("Conneccted Successfully");
        }catch(Exception e){
            e.printStackTrace();
        }
    }

}