Springboot 2.0 не может получить доступ к базе данных SQL Server

Пожалуйста, помогите с проблемой, которую я получаю с последней версией Springboot (2.0.3.RELEASE) При попытке доступа к базе данных появляется следующая ошибка. Он работал до перехода на упомянутую версию Springboot и Java 10.

Среда разработки:

-Spring Boot 2.0.3.RELEASE

-JDK / JRE 10 (jdk-10.0.1)

-IDE: Spring Tool Suite 3.9.5.RELEASE

ОШИБКА:

2018-07-19 20:24:37.524 ERROR 12532 --- [  restartedMain] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:33a45785-248c-4b57-ba29-f8802ddd8b25".

Caused by: java.io.IOException: SQL Server did not return a response. The connection has been closed. ClientConnectionId:33a45785-248c-4b57-ba29-f8802ddd8b25

org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:33a45785-248c-4b57-ba29-f8802ddd8b25".

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed. ClientConnectionId:33a45785-248c-4b57-ba29-f8802ddd8b25".

Я выполнил миграцию гид, но безуспешно. Я также пробовал другую конфигурацию, найденную в Интернете, но ничего не решает эту проблему.

Это происходит из-за версии Spring / Java.

Обратите внимание на конфигурацию DataSource в application.properties:

#CURRENT DATASOURCE CONFIG
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url=jdbc:sqlserver://192.168.6.72;databaseName=WST
spring.datasource.hikari.username=user
spring.datasource.hikari.password=password
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto = none
spring.jpa.show-sql=true

#FOLLOWING CONFIG ARE JUST FOR REFERENCE. I TRIED THEM AS PER BLOGS 
#spring.datasource.hikari.dataSourceClassName=com.microsoft.sqlserver.jdbc.SQLServerDataSource
#spring.datasource.url=jdbc:sqlserver://192.168.6.72;databaseName=WST
#spring.datasource.url=jdbc:sqlserver://192.168.6.72:1433/WST
#spring.datasource.type=
#spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
#spring.datasource.tomcat.max-active=1
#spring.datasource.username=wstapp
#spring.datasource.password=wstapp@test
#spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
#spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDataSource
#spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
#spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
#spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

На этой неделе я искал причину. Несколько советов по правильной конфигурации были бы полезны.

Заранее спасибо.

Взгляните на github.com/Microsoft/mssql-jdbc/issues/414

Nitin 21.07.2018 07:55

@NitinVavdiya спасибо. Ваш ответ указывает правильный путь.

JVz 25.07.2018 02:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
2 651
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это проблема MSSQL-JDBC. Ответ: Нитин Вавдия указал мне правильное направление.

Я нашел "решение" здесь: https://github.com/Microsoft/mssql-jdbc/issues/719

Я только что изменил файл java.security в папке установки JRE и удалил значение: 3DES_EDE_CBC из jdk.tls.disabledAlgorithms в файле:

Программные файлы \ Java \ "Версия JRE" \ lib \ security

Вот точный ответ, который мне помог:

Чтобы повысить надежность соединений SSL / TLS, наборы шифров 3DES были отключены в соединениях SSL / TLS в JDK через свойство безопасности jdk.tls.disabledAlgorithms. (http://www.oracle.com/technetwork/java/javase/8u171-relnotes-4308888.html)

После изменения java.security и удаления 3DES_EDE_CBC из jdk.certpath.disabledAlgorithms все работает нормально. Я не уверен, что нужно изменить в конфигурации SQLServer, чтобы отключить 3DES как схему SSL.

У меня была такая же проблема с jdk1.8.0_172 в Ubuntu 18.04. Это сработало

davidwaf 07.03.2019 12:13

Другие вопросы по теме