Подтвердить что ты не робот

Java.sql.SQLException: ошибка ввода-вывода: ошибка SSO: встроенная библиотека SSPI

У меня есть два веб-приложения, которые нужно запускать на Tomcat 6, MS SQL 2008 и JTDS-1.2.2 в качестве драйвера.

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

java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library

Конечно, библиотека ntlmauth.dll находится под C:\WINDOWS\system32

Кажется, что второе запущенное приложение не может найти ntlmauth.dll для единственного знака.

4b9b3361

Ответ 1

Это решение:

Скачайте драйвер jTDS, разархивируйте его и скопируйте x86\SSO\ntlmauth.dll в jdk\jre\bin.

Это должно решить вашу проблему.

Edit:

Без установленного JDK путь для меня был C:\Program Files\Java\jre7\bin\ntlmauth.dll

jTDS должен иметь возможность загружать собственную библиотеку SPPI (ntlmauth.dll). Разместите эту DLL в любом месте системного пути (определяется системной переменной PATH), и вы все настроены.

Ответ 2

Я прошел мимо этого, изменив URL-адрес из

jdbc:jtds:sqlserver://host_server:1433/Database_name

к

jdbc:jtds:sqlserver://host_server:1433/Database_name;user=XXX;password=YYY

По-видимому, "Когда URL [does] не содержит свойств пользователя и пароля, в системах используется метод проверки подлинности Windows и появляется ошибка" Собственная библиотека SSPI ".

Ответ 3

Если вы пытаетесь запустить два (или более) приложения Tomcat на том же сервере, что и для доступа к SQL Server с использованием драйвера JTDS и проверки подлинности Windows, очень полезный ответ любезно предоставлен Крисом Уайтом .

Ответ Криса связан с sqljdbc_auth.dll, но рекомендации одинаковы для драйвера JTDS и ntlmauth.dll:

  • Поместите файл ntlmauth.dll в каталог tomcat 7.0\bin. На самом деле, я считаю, вы можете поместить ntlmauth.dll в любой каталог в системном пути или в каталог Java jre\bin.
  • Важно отметить, что не собирайте банку JTDS в военном файле любого приложения Tomcat с помощью драйвера JTDS. Вместо этого поместите одну копию в каталог Tomcat\lib, где Tomcat загрузит ее и сделает ее доступной для всех приложений.

Ответ 4

Если вы находитесь в 64-битных окнах, но запускаете 32-разрядную Java-версию (то есть в программных файлах x86), вам нужна 32-разрядная dll dll, а не 64-разрядная, которую вы могли бы ожидать.