java.sql.SQLException:I/O错误:SSO失败:本机SSPI库

and*_*007 11 java sql sql-server jdbc single-sign-on

我有两个Web应用程序需要在Tomcat 6,MS SQL 2008和JTDS-1.2.2上作为驱动程序运行.

如果我只启动一个Web应用程序,一切正常,但是一旦我启动第二个,我就会收到以下错误(订单无关紧要):

java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library
Run Code Online (Sandbox Code Playgroud)

当然,图书馆ntlmauth.dllC:\WINDOWS\system32

似乎启动的第二个应用程序无法找到ntlmauth.dll单点登录.

Spe*_*eck 18

我通过更改网址来解决这个问题

jdbc:jtds:sqlserver://host_server:1433/Database_name
Run Code Online (Sandbox Code Playgroud)

jdbc:jtds:sqlserver://host_server:1433/Database_name;user=XXX;password=YYY
Run Code Online (Sandbox Code Playgroud)

显然,"当URL [不]包含用户和密码属性时,系统使用Windows身份验证方法,并且出现"未找到SSPI本机库"错误."

  • 你只是结束了3个小时无果而终的调试.万岁! (3认同)
  • downvoted,因为父母询问SSO并且这个答案不使用SSO(Windows身份验证)而是使用SQL Server身份验证,因此无法解决父问题 (2认同)

Gia*_*ani 17

这是解决方案:

下载jTDS驱动程序,解压缩并复制x86\SSO\ntlmauth.dlljdk\jre\bin.

这应该可以解决您的问题.

编辑:

如果没有安装JDK,我的路径就是 C:\Program Files\Java\jre7\bin\ntlmauth.dll

jTDS必须能够加载本机SPPI库(ntlmauth.dll).将此DLL放在系统路径中的任何位置(由PATH系统变量定义)并且您已完成设置.