JTDS错误:本机SSPI库未加载



我已经多次看到这个问题出现,但我尝试过的所有答案都不适合我。过去的连接字符串看起来像这样

url = "jdbc:jtds:sqlserver://server1/dbname;user=user;password=pswd"; //this one works fine
url = "jdbc:jtds:sqlserver://server1;dbname;databaseName=dbname;integratedSecurity=true"; //doesn't work

但是我得到了异常。

java.io.IOException: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

我有jtd-1.2,我将ntlmauth.dll复制到我的lib文件夹中,并在eclipse上将jtd-1.2.jar的路径添加到本机库位置,但没有任何更改。

还尝试添加-Djava.library.path=。/lib到我的运行配置。我正在使用jre 1.7和Eclipse Helios运行RCP应用程序

我通过使用microsoft JDBC驱动程序使程序工作。从他们的网站下载

https://www.microsoft.com/en-us/download/details.aspx?id=11774

并从连接字符串

中删除JTDS
url = "jdbc:jtds:sqlserver://server1;dbname;databaseName=dbname;integratedSecurity=true";

我也遇到过同样的问题。

通常我会这样做,这很好:

myConnection = DriverManager.getConnection(dbConnection, "username", "pasword");

但是当试图从这样的方法获取用户名和密码时:

myConnection = DriverManager.getConnection(dbConnection, getUser(), getPassword());

我得到了相同的错误。事实证明,getUser()返回null,这似乎使SQL Server尝试使用Windows身份验证登录,这不是设置在那台机器上。所以确保getUser()不是null是有区别的。

最新更新