Драйверу не удалось установить безопасное соединение с сервером sql с использованием шифрования ssl

Обновлено: 04.07.2024

seal Спрашивает: Драйверу не удалось установить безопасное соединение с SQL Server с помощью шифрования Secure Sockets Layer (SSL). Ошибка: «Ошибка построения пути PKIX:
Я новичок в SQL (управление Microsoft SQL Server) и пытаюсь подключить его к IntelliJ

Я получаю следующую ошибку: com.microsoft.sqlserver.jdbc.SQLServerException: Драйверу не удалось установить безопасное соединение с SQL Server с помощью шифрования Secure Sockets Layer (SSL). Ошибка: «Ошибка построения пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти допустимый путь сертификации к запрошенной цели».

Это есть в моей библиотеке LIB

Любая помощь приветствуется!

Сообщения без ответов

[Решено] Скорректированный график регрессии Кокса

  • Макс.Б
  • 5 минут назад
  • Ответов: 0

MaxB Asks: Скорректированный график регрессии Кокса
Я хотел бы построить скорректированную кривую выживаемости регрессионного анализа Кокса, подобную этой, но с поправкой на базовые измерения пола, возраста, trop, egfr, дм, и дым. График должен быть стратифицирован по квартилям delta_mon3_baseline_to_m1 .

введите здесь описание изображения< бр />

Вот мои данные:

Вот вывод консоли:

Большое спасибо за помощь.

[Решено] React Conditional Rendering child on click не работает

  • Выбор
  • 5 минут назад
  • Ответов: 0

고윤태 Спрашивает: Условный рендеринг React дочернего элемента при нажатии не работает
В настоящее время я использую react, styled-Components, react-icons

Я создаю компонент раскрывающегося списка выбора.

Я хочу вести журнал консоли при нажатии элементов, но это не работает.

Возможно, из-за условного рендеринга элемент исчезает

до того, как будет вызвано действие по клику. Есть ли лучший способ?

Кто-нибудь может помочь?

Ниже приведен код, который я написал.

[Решено] Трудно понять, как работают промисы

  • Ритвик_ _D
  • 5 минут назад
  • Ответов: 0

ritwick_ _D Спрашивает: Трудно понять, как работают промисы
У меня есть фрагмент кода, в котором я извлекаю файл JSON с локального диска:

При этом я прекрасно вижу данные JSON в консоли браузера. Однако, когда я делаю это:

Я вижу обещание (в ожидании) в своей консоли. Я знаю, как работает асинхронный JS, и я знаю, что цепочка then() срабатывает только тогда, когда разрешается предыдущее обещание. Мой вопрос в том, почему во втором блоке then() я могу видеть данные, когда я использую console.log(), но не могу видеть дату, когда я возвращаю их из той же функции, где я был console.log()?

Кроме того, если учесть тот факт, что, возможно, во втором случае обещание не было выполнено, когда я записал его в консоль, из-за асинхронного характера fetch(), я попробовал следующее:

думая, что как только обещание будет выполнено, я обязательно получу свою ценность. Но потом я получаю

<р>. Может ли кто-нибудь сказать мне, что мне не хватает? Буду очень благодарен за любую помощь.

[Решено] Делитесь отчетами сервера отчетов Power BI с внешними пользователями

  • программист21
  • 5 минут назад
  • Ответов: 0

programmer21 просит: Отправить отчеты сервера отчетов Power BI внешним пользователям
У нас есть несколько отчетов на сервере отчетов Power BI. Теперь мы хотим предоставить доступ внешним пользователям, включая инвесторов, для просмотра отчетов о затратах. Я много исследовал эту проблему, но для уверенности я также спрашиваю здесь. Есть ли способ поделиться этим отчетом с внешними пользователями с заданным RLS?

Мы будем очень признательны за любую помощь.

[Решено] Невозможно добавить URL-адрес в список исключений Java

  • СиддхартМ
  • 5 минут назад
  • Ответов: 0

SiddharthM Спрашивает: Невозможно добавить URL-адрес в список исключений Java
Я пытаюсь добавить URL-адрес http в список исключений Java в корпоративной среде (рабочий ноутбук), но при нажатии «добавить», а затем «ОК» добавленный веб-сайт не отображается в добавленном списке.

[Решено] Какую среду спортзала OpenAI следует использовать для решения проблемы с кратчайшим маршрутом?

  • Анвеса Рой
  • 5 минут назад
  • Ответов: 0
  1. Я пытаюсь найти кратчайший маршрут между двумя узлами, используя обучение с подкреплением. Я не уверен, какую среду использовать. Я нашел эту конкретную среду и не уверен, что иду в правильном направлении. Кто-нибудь может помочь. Может ли кто-нибудь предложить несколько сред тренажерного зала Python OpenAI, которые я могу использовать.

[Решено] Не могу исправить эту ошибку в vscode: "(" не был закрыт

  • Тапело Чимфвембе
  • 5 минут назад
  • Ответов: 0

Тапело Чимфвембе спрашивает: Похоже, я не могу исправить эту ошибку в vscode: "(" не был закрыт
Я пытался сделать визуализацию с помощью сюжетного тире и хотел попробовать первый пример приложения из документации сайтов. Я скопировал и вставил большую часть кода и убедился, что сделал правильные отступы, но, похоже, постоянно получаю сообщение об ошибке в скобках. Есть совет?

[Решено] Условные столбцы из нескольких строковых значений в нескольких столбцах

  • Мухаммад
  • 5 минут назад
  • Ответов: 0

Мухаммад спрашивает: Условные столбцы из нескольких строковых значений в нескольких столбцах
Я хотел бы создать условный столбец на основе значений строки в 3 других столбцах в arcmap (калькулятор поля). Скажем

а. Столбец_1 = а, б, в, г

б. Столбец_2 = x, y, z, j, 1, 2

<р>в. Столбец_3 = м, н, 0, 1,

возврат, который я ожидал в новом столбце, выглядит следующим образом:

'I', если [Столбец_1 — это "a" или "b"] и [Столбец_2 – это "j", "1" или "2"] и [Столбец_3 – это "m" или "n"]

'II', если [Столбец_1 — это "a" или "b"] и [Столбец_2 – это "y", "z" или "j"] и [Столбец_3 – это "0" или "1"]

другая комбинация вернет "III"

def fnX('Столбец_1', 'Столбец_2', 'Столбец_3'): если (Столбец_1 == 'a' или 'b') и (Столбец_2 == 'j' или '1' или '2') и (Столбец_3 == 'm' или 'n'): вернуть 'I'

elif (Column_1 == 'a' или 'b') и (Column_2 == 'y' или 'z' или 'j') и (Column_3 == '0' или '1'): return 'II '

иначе: вернуть "III"

я попробовал код выше, но не получилось. все они возвращаются как «я». Есть ли какой-либо другой тип аргумента, который можно использовать для замены if-elif-else? Извините, здесь новички..

[Решено] VPN не работает на эмуляторе Android в MacOS

  • Усман Хан
  • 5 минут назад
  • Ответов: 0

Усман Хан спрашивает: VPN не работает на эмуляторе Android в MacOS
Я использую эмулятор Android Studio на своей MacOS, где я использую VPN. На моем рабочем столе я могу получить доступ к веб-сайту с помощью VPN, но на моем эмуляторе я не могу получить доступ к этим веб-сайтам, но на устройстве работает обычный Интернет.

Я также использую DNS 8.8.8.8 в настройках сети, пожалуйста, объясните мне, как я могу использовать ту же сеть, что и на своем рабочем столе (чтобы использовать ту же сеть VPN), на моем устройстве-эмуляторе.

[Решено] Как регистрировать выходные данные теста dotnet в формате junit

  • Тень
  • 5 минут назад
  • Ответов: 0

Shadow Asks: Как регистрировать выходные данные теста dotnet в формате junit
dotnet test по умолчанию использует выходные данные trx. Я использую trx2junit для преобразования его в junit, но это усложняет настройку CI.

Можно ли вывести отчет о тестировании в формате junit непосредственно из теста dotnet?

Я рефакторил свой код подключения к базе данных, и, вероятно, с тех пор у меня возникла новая незаметная проблема, но мне нужны некоторые указатели на то, что происходит в драйвере mssql.

Кажется, у меня возникают случайные проблемы с созданием соединений SQL, которые в противном случае работали бы нормально. Я получаю следующие трассировки стека при подключении к базе данных NON-ENCRYPTED sql server 2017.

Может ли кто-нибудь объяснить, почему согласование предварительного входа в TDS, SSL или любую другую схему шифрования может объяснить, почему я иногда получаю это исключение? Или это неправильное сообщение об исключении? Есть ли какой-то SSL для входа в систему, даже если у нас нет настройки шифрования на стороне сервера sql?

Текст был успешно обновлен, но возникли следующие ошибки:

martinm1000 прокомментировал 13 ноября 2018 г. •

@peterbae Самый простой:

быстро перезагружая данные в своем приложении, я снова получил исключение (даже с encrypt=false, который я только что добавил).

martinm1000 прокомментировал 13 ноября 2018 г.

Я могу подтвердить, что также могу получить это исключение, используя mssql-jdbc-7.0.0.jre10.

martinm1000 прокомментировал 13 ноября 2018 г.

Думаю, я попытаюсь написать небольшой тестовый класс, который мог бы это воспроизвести.

Мне трудно воспроизвести его, но сейчас лучший способ сделать это — запустить мое приложение из образа среды выполнения Java 11 со всем, что находится в пути к модулю. Не уверен, действительно ли это фактор или нет. Мне нужно быстро перезагрузить материал в моем приложении, чтобы запустить новое соединение sql в быстрой последовательности, и тогда я могу получить исключение.

martinm1000 прокомментировал 13 ноября 2018 г.

martinm1000 прокомментировал 14 ноября 2018 г.

Я считаю, что этот тип ошибки должен иметь внутреннюю повторную попытку, поскольку некоторые другие типы внутренних ошибок ssl повторяются в драйвере (SQLServerException.DRIVER_ERROR_INTERMITTENT_TLS_FAILED), но не похоже, что у этой ошибки есть еще один шанс при первом сбое, если я не ошибаюсь. (SQLServerException.DRIVER_ERROR_SSL_FAILED)

ulvii прокомментировал 14 ноября 2018 г. •

Привет, @martinm1000,
Пожалуйста, опубликуйте точную версию Java (вывод java -version). Кроме того, в какой операционной системе работает приложение?

martinm1000 прокомментировал 14 ноября 2018 г.

Я собираюсь опубликовать "рабочий" тестовый пример, который иногда воспроизводит проблему (простой цикл). В настоящее время я пытаюсь выяснить, почему я иногда не могу заставить его разбиться. и хорошо. это странно.

Сейчас я могу активировать его только при работе в среде выполнения JLINKED, а не в полной среде выполнения JDK. В любом случае, я провожу еще несколько тестов перед публикацией.

Но это будет соответствовать тому, что я вижу со вчерашнего дня, и почему я не видел этой проблемы до своих тестов на Java 11.

ulvii прокомментировал 14 ноября 2018 г. •

Не могли бы вы использовать свойство подключения sslProtocol=TLSv1, чтобы заставить драйвер использовать TLS 1.0, и сообщить мне, если вы все еще видите сбои? Ваша строка подключения станет jdbc:sqlserver://WKS-DEV-23;encrypt=false;user=user;password=xxxxxx;applicationName=xxx;databaseName=XXXXX;sslProtocol=TLSv1;

martinm1000 прокомментировал 14 ноября 2018 г.

Пока все хорошо с TLSv1. По крайней мере, у нас это есть ;-)

ulvii прокомментировал 14 ноября 2018 г.

Отлично, теперь мы подтвердили, что вы видите сбои из-за периодически возникающих проблем с TLS1.2.

Пожалуйста, ознакомьтесь с этой статьей, в которой объясняется причина проблемы (изменения в шифрах Windows), а также возможные решения/обходные пути.

Я также хотел бы объяснить, почему драйвер не может повторить попытку, когда для этого реализована логика. Периодически возникающая проблема TLS1.2 «предполагается» драйвером на основе сообщения об ошибке с сервера. Смотрите эту строку. По какой-то причине ваша версия JDK упаковывает фактическое и ожидаемое сообщение об исключении. SQL Server вернул неполный ответ. Соединение было закрыто. в Неожиданный повторный бросок. Ниже приведена трассировка стека моего приложения с Oracle JDK 11.0.1+13.

Пожалуйста, дайте мне знать, если у вас есть другие вопросы.

martinm1000 прокомментировал 14 ноября 2018 г.

Спасибо, посмотрю. Но я не уверен, что он отвечает на все это. Прямо сейчас я могу воспроизвести проблему, используя jlinked среду выполнения Java. это то, что мы должны сделать сейчас.

Завтра я проведу тесты с Oracle JDK.

Вот мой тестовый пример

Макет каталога

mssql-jdbc-7.1.2.jre11-preview.jar
тест
TriggerSSLFailure.java

Инструкции

Тестовый файл содержит аргументы для программы (URL-адрес sql и т. д.)

При выполнении с полным JDK я никогда (во всяком случае, пока) не получал исключение:

Я могу получить исключение только при запуске из jlinked минимальной среды выполнения Java. (это то, что беспокоит меня сейчас).

Посмотрите на используемые модули

Создать среду выполнения для нашего приложения

запустите тестовую программу с этой средой выполнения. Иногда я получаю исключение.

martinm1000 прокомментировал 14 ноября 2018 г. •

Вопрос: как вы получили трассировки стека без повторной попытки и отключения их, поскольку у вас есть ожидаемое сообщение об исключении (а не Неожиданное повторное создание)?

редактировать: могу я увидеть ваш Issue849.java?

ulvii прокомментировал 14 ноября 2018 г.

При выполнении с полным JDK я никогда (во всяком случае, пока) не получал исключение
Я предлагаю получить журналы JDBC и сравнить их между полным JDK и минимальным JRE. Я подозреваю, что прерывистая проблема TLS1.2 возникает в обоих случаях, но с полным JDK драйвер фактически повторяет попытку. Вам нужно будет добавить следующие строки в ваше приложение, чтобы получить журналы на консоли:

Если повторная попытка действительно произойдет, вы увидите строку: Ошибка подключения во время подтверждения SSL. Повторная попытка из-за периодически возникающего сбоя TLS 1.2.

Другая возможность заключается в том, что наборы DHE отключены для JDK, как указано в этой статье.

Как вам удалось получить трассировки стека без повторной попытки и отключения их, поскольку у вас есть ожидаемое сообщение об исключении (а не Неожиданное повторное создание)?
Я не воспроизвел точный периодический сбой, вместо этого я сделал, чтобы гарантироватьSSLPayload() всегда терпел неудачу с Вызвано: java.io.IOException: SQL Server возвратил неполный ответ. Соединение было закрыто. Драйвер повторяет INTERMITTENT_TLS_MAX_RETRY = 5 раз и сдается.

martinm1000 прокомментировал 14 ноября 2018 г.

Хорошо, попробую в четверг.

Я уже просматривал эту статью сегодня. Это действительно странно, потому что я не понимаю, почему java не будет использовать фиксированные размеры ключей, которые в этой статье могут быть источником прерывистого сбоя (когда меньше 1024).

Тем не менее, я проведу дополнительные тесты, нам нужно найти источник "неожиданного повторного вызова", потому что, поскольку это обходит логику повторной попытки драйвера, эта проблема может стать более серьезной в будущем.

martinm1000 прокомментировал 15 ноября 2018 г.

Я не мог получить зарегистрированное сообщение о повторной попытке при работе на полных jdks, я не понимаю, почему, как будто мне никогда не нужно было повторять попытку?

Я протестировал коммерческую сборку JDK Oracle и открытую сборку JDK Oracle. Все то же самое, что и для AdoptOpenJDK.
При работе на полной версии JDK все выглядит нормально.Запустив образ JLINKED из каждого JDK, все они получают одну и ту же проблему (неожиданное повторное создание), которая обходит эту логику повторной попытки драйвера.

Я постараюсь найти больше об этом "неожиданном повторном броске".

Но похоже, что текущая логика повтора не будет работать в jlinked средах выполнения jdk 11.

martinm1000 прокомментировал 15 ноября 2018 г.

Ну, я понятия не имею. Полагаю, я выберу SSLv1 и надеюсь, что его поддержка никогда не прекратится.
Кто-то еще должен посмотреть/проверить это, я не вижу, что еще я могу сделать.

martinm1000 прокомментировал 15 ноября 2018 г. •

Создать отлаживаемый образ можно с помощью следующей команды. Запуск этого java-образа позволит вам иногда сталкиваться с реальной проблемой TLS 1.2, которую я всегда получаю, используя

martinm1000 прокомментировал 15 ноября 2018 г. •

Возможное объяснение, которое я сейчас рассматриваю:

  • При работе на полной версии JDK протокол TLSv1.2 рекламирует ГОРАЗДО больше наборов шифров, чем минимальная среда выполнения, связанная с jlink.
  • Возможно, старый код повторной попытки давно перестал работать, но изменения шифра в JDK означают, что был выбран какой-то другой шифр, который не подвергался периодической ошибке.
  • Ява 11? среды выполнения, сгенерированные из jlink, не экспортируют все одни и те же наборы шифров, а используемый периодически подвержен ошибкам.

Что вы думаете?

ulvii прокомментировал 15 ноября 2018 г.

Я почти уверен, что логика повторной попытки все еще работает, пока фактическое сообщение об ошибке не завернуто во что-то еще посередине.

Я также думаю, что было бы справедливо также проверить сообщение об ошибке e.getCause() , для которого я скоро создам PR и попрошу команду проверить его.

martinm1000 прокомментировал 15 ноября 2018 г.

Я почти уверен, что логика повтора все еще работает, пока фактическое сообщение об ошибке не завернуто во что-то другое посередине.

Я не уверен в этом. Но трудно доказать, так как проблему нелегко воспроизвести (ну, если вы забыли здесь мой случай).

Хорошо, я обнаружил, что если кто-то сгенерирует образ среды выполнения с дополнительными модулями, указанными ниже, образ, связанный с jlink, будет рекламировать для TLS те же алгоритмы, что и полная среда выполнения. И я предполагаю, что у нас будет использоваться алгоритм, который не будет подвержен периодически возникающим проблемам.

Таким образом, это может быть решением (мы прячем настоящую проблему под ковер, но.)

martinm1000 прокомментировал 15 ноября 2018 г. •

Что касается кода, оборачивающего исключение, я думаю, что текущая реализация sun.security.ssl.TransportContext, которая делает это, изменилась в последних двух выпусках JDK.

Если я проверю Java 8 jsse.jar для sun.security.ssl.TransportContext, он не существует.

Таким образом, может быть так, что неупакованное исключение перестало работать какое-то время назад, но изменения в шифрах, доступных для TLS, замаскировали это. Я думаю, следует предположить, что это текущий способ возникновения исключения.

Спасибо за помощь!

ulvii прокомментировал 15 ноября 2018 г.

@martinm1000, если вы посмотрите на трассировку стека, которую я опубликовал выше, вы увидите, что TransportContext.fatal() не переносит фактическое сообщение об ошибке в Unexpected rethrowing, по крайней мере, с Oracle JDK 11.0.1+13. . И я также проверил, что, если сообщение об исключении не заключено в какое-либо другое сообщение, драйвер повторяет попытку правильно.

Если вы хотите быть полностью уверены, вы можете поставить точку останова в методе sureSSLPayload() (именно здесь перехватывается исходное исключение SQLServerException и повторно создается как IOException ) и инициировать проблему TLS1.2 для проверки сообщения об исключении. На самом деле не имеет значения, вызовет ли исключение фактический сбой TLS1.2 или вы вызовете его вручную из assertSSLPayload() , поведение драйвера для логики повторных попыток останется прежним.

Я создал jar-файл, который также проверяет наличие сообщения exception.getCause() и повторяет попытки. Не могли бы вы протестировать его и проверить, повторяет ли драйвер попытки в случае прерывистой проблемы TLS1.2 с JLINKED-образом?
Issue879_jar.zip

martinm1000 прокомментировал 16 ноября 2018 г.

@ulvii это интересно. В моем случае TransportContex.fatal действительно перешел к TransportContext.java:293, что является «маловероятным, но на всякий случай». которые бросают alert.createSSLException("Неожиданный повторный вызов", причина);

Настоящий тест с вашей сборкой повторил попытку правильно!

На этот раз я вижу FINE: Ошибка подключения во время подтверждения SSL. Повторная попытка из-за периодически возникающего сбоя TLS 1.2. Попытка повтора = 1
в журналах.

Это было сделано с помощью:

ulvii прокомментировал 16 ноября 2018 г.

Спасибо за тестирование сборки. Я создал PR, пожалуйста, просмотрите его.

ulvii прокомментировал 27 ноября 2018 г.

muhammedOzbilici прокомментировал 18 декабря 2019 г. •

У меня тоже такая проблема.
Версия драйвера -> mssql-7.4.1.jre8

com.microsoft.sqlserver.jdbc.SQLServerException: Драйверу не удалось установить безопасное соединение с SQL Server с помощью шифрования Secure Sockets Layer (SSL). Ошибка: «SQL Server не вернул ответ. Соединение было закрыто. ClientConnectionId: 5fb87e9c-db2e-498c-b480-2d4aebae622a».

martinm1000 прокомментировал 18 декабря 2019 г.

@muhammedOzbilici Я не думаю, что это одна и та же проблема; У вас "SQL Server не вернул ответ", что означает что-то еще (не уверен, что!)

muhammedOzbilici прокомментировал 19 декабря 2019 г.

@muhammedOzbilici Я не думаю, что это одна и та же проблема; У вас "SQL Server не вернул ответ", что означает что-то еще (не знаю, что!)

Но разве это не связано с SSL? Если это не так, какую конфигурацию мне нужно проверить на стороне базы данных?

ulvii прокомментировал 19 декабря 2019 г.

Здравствуйте, @muhammedOzbilici,
Пожалуйста, просмотрите закрытые вопросы, возможно, решение вашей проблемы уже есть.

italin40 прокомментировал 16 января 2020 г.

@muhammedOzbilici Я не думаю, что это одна и та же проблема; У вас "SQL Server не вернул ответ", что означает что-то еще (не знаю, что!)

Но разве это не связано с SSL? Если это не так, какую конфигурацию мне нужно проверить на стороне базы данных?

В этой статье рассматривается следующая информация об исключениях, которая может оказаться полезной для вашего программирования!

Аномальная информация

Драйвер не может установить безопасное соединение с SQL Server с помощью шифрования уровня защищенных сокетов (SSL). Ошибка: "нет подходящего протокола (протокол отключен или не подходят шифровальные костюмы)"

Операционная среда

Описание исключения

При подключении к SQL SERVER с помощью JDBC произошла следующая ошибка

Причина ошибки

Это может быть вызвано несоответствием алгоритма шифрования JRE и SQL SERVER, а последняя версия Eclipse использует собственный JRE. Таким образом, ошибка может быть вызвана несоответствием алгоритма шифрования JRE в Eclipse и SQL SERVER, что приводит к сбою соединения

разрешающий

Поскольку существует проблема с JRE в Eclipse, нам нужно всего лишь переключить JRE Eclipse на нашу собственную JRE. Шаги следующие:

Добавить JRE в Eclipse


открыть
Eclipse -> Window -> Perferences -> Java -> Установленные JRE
Появится следующий интерфейс

Первый — это JRE, предоставленный Eclipse (ошибка появится сообщать при подключении к SQL SERVER)
Второй, который я добавил позже, покажет вам, как добавить JRE.

Нажмите кнопку «Добавить» в правой части интерфейса выше.


Если вы забыли путь установки JDK, вы можете открыть командную строку и ввести следующие команды для просмотра это

Выберите папку jre


На этом добавление JRE Eclipse завершено. Для использования в проекте необходимо настроить следующее:

Изменить версию JRE в проекте




Здесь мы должны выбрать JRE с номером версии. Это JRE, которая поставляется с нашим собственным JDK, а не JRE, которая поставляется с Eclipse.
На данный момент модификация проекта JRE завершена. Вы можете проверить, будут ли исключения в вашем проекте.
—END—
При создании нового проекта вы можете сначала указать JRE, поэтому вам не нужно настраивать версию JRE вручную. Если это проблематично, вы можете напрямую удалить конфигурацию JRE в Eclipse в интерфейсе добавления JRE (см. рис. 2 ниже)

Драйвер не может использовать шифрование на уровне защищенных сокетов (SSL) и SQL Server. Установите безопасное соединение. ошибка: «Нет подходящего протокола (протокол отключен или наборы шифров не подходят)»

Рабочая среда

Описание исключения

Использовать JDBC Connect SQL SERVER. Произошла следующая ошибка

Причина ошибки

Это может быть алгоритм шифрования JRE и SQL SERVER, вызванный несоответствием алгоритмов шифрования, и теперь Eclipse Более новые версии используют свою собственную JRE, поэтому причиной ошибки может быть Eclipse Встроенный алгоритм шифрования JRE и SQL SERVER Не удалось установить соединение из-за несоответствия алгоритмов шифрования

разрешающий

Поскольку это Eclipse Medium JRE. Возникла проблема, поэтому просто установите Eclipse Of JRE Switch на нашу собственную JRE, которая подойдет. Шаги следующие:

добавить в Eclipse Medium JRE

 Вставьте сюда описание изображения
< /p>

открыть
Eclipse -> Window -> Perferences -> Java -> Installed JREs
Появится следующий интерфейс

Первый — это автономная JRE Eclipse (и SQL SERVER соединение сообщит об ошибке)
Второй я добавил позже, мы покажем вам, как добавить JRE.

Выберите. В правой части интерфейса над кнопкой «Добавить»


Если вы забыли путь установки JDK для , вы можете открыть командную строку и ввести следующие инструкции для просмотра

выбор папки jre


Добавить для себя JRE Отметьте , Сохранить и закрыть .
Вот и все, Eclipse Of JRE Добавление, Использование. В проекте требуется следующая конфигурация:

Изменить. В версии проекта JRE




Вы должны выбрать С номером версии, Это сами JDK Встроенная JRE, Вместо Eclipse Встроенная JRE.
Вот и мы, проект JRE Модификация завершена, вы можете проверить, будут ли в вашем проекте все еще иметься исключения.
—КОНЕЦ—
При создании нового проекта позже, Вы можете указать JRE, Вам не нужно настраивать его вручную Версия JRE, Если это слишком сложно, Вы можете добавить JRE Интерфейс будет непосредственное отображение Eclipse Встроенная JRE Настройка удаления (см. рис. II ниже)

Читайте также: