Подключение Glassfish к базе данных сервера MS SQL - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть ознакомительная копия сервера MS SQL, к которой подключена база данных AdventureWorks2016, и я запустил Glassfish на localhost: 4848. Соединение TCP / IP разрешено на сервере SQL (Configuration Manager), а порт TCP - 1433. Я скачал драйвер Microsoft JDBC 7.0 для SQL Server с Драйвер Microsoft JDBC , разархивировал его в C: \ и установил CLASSPATH переменная, чтобы указать на него и поместил его копию в C: \ Program Files \ glassfish5 \ glassfish \ domains \ domain1 \ lib. Я использую аутентификацию Windows для подключения к серверу MS SQL. Я создаю пул соединений AdventureWorks2016 со всеми значениями по умолчанию. Когда я пингую это, я получаю

java.lang.NoSuchMethodError: sun.security.ssl.SSLSessionImpl. (Lsun / security / ssl / ProtocolVersion; Lsun / security / ssl / CipherSuite; Ljava / util / Collection; Lsun / security / ssl / SessionId; L; lang / String; I) V sun.security.ssl.SSLSessionImpl. (Lsun / security / ssl / ProtocolVersion; Lsun / security / ssl / CipherSuite; Ljava / util / Collection; Lsun / security / ssl / SessionId; Ljava / lang / Строка, I)

Чего мне не хватает? java jdk - это java 8 (jdk1.8.0_191) и Glassfish 5.0.

Я понижен до java8u151. Теперь ошибка, когда я пингую:

Не удалось выполнить пинг пинг соединений для AdventureWorks2016. Соединение не может быть выделено, потому что: Драйвер не смог установить безопасное соединение с SQL Server с помощью шифрования Secure Sockets Layer (SSL). Ошибка: «Неподдерживаемый идентификатор кривой: 29». ClientConnectionId: ebe27ff7-0ce1-4e9d-95fd-52133be8ee01 Пожалуйста, проверьте server.log для более подробной информации.

Как я уже сказал, я использую аутентификацию Windows на сервере, потому что мне больше ничего не нужно на моем ноутбуке, и потому что это сработало в первую очередь, когда я установил MS SQL Server. Сейчас я пытаюсь

JDBC: SQLServer: // локальный; integratedSecurity = истина;

для свойства URL, но оно не дало эффекта.

Ответы [ 4 ]

0 голосов
/ 11 февраля 2019

Вы должны использовать определенную версию JDK, чтобы это работало: 181. Я мог бы заставить это работать согласованно только с драйвером JDBC для MS SQL Server, если бы я использовал JDK версии 181. Я хотел бы, чтобы был лучший способ использования более свежая версия JDK, но, к сожалению, это так.

0 голосов
/ 07 января 2019

Решение проблемы «Unsupported curveId: 29» решено.

Вот мой параметр в Glassfish (сборка Java8 152): "- Dcom.sun.net.ssl.enableECC = false".

Смотрите изображение: enter image description here

0 голосов
/ 28 января 2019

Ответ, данный @VinnhCC, решит проблему, если вместо опции «default-config» указать опцию «server-config».

0 голосов
/ 06 ноября 2018

Вы столкнулись с известной проблемой со версиями GlassFish 5.0 и Java выше, чем 8u161.

из последний раз, когда я отвечал на эту проблему :

Решением этой проблемы является понижение версии Java до версия ниже 8u161 .

Я ответил на это более подробно в другом ответе но, если вы это сделаете не нравится идея понижения Java, вы можете использовать последняя версия GlassFish 5.0.1 для ночного или перехода на Payara 5, происходит от GlassFish и в большинстве случаев должно работать одинаково.

Редактировать: Обратите внимание, что после внесения одного из этих изменений вам все равно потребуется добавить исключение безопасности, чтобы ваш браузер принимал самоподписанный сертификат, но страница не должна работать дальше проблемы; Я сам проверил это с помощью Java 8u144

...