问题
Trying to connect my java web application with MS-SQL server using sqljdbc41 for jdk 1.8. Here is the database connection code-
Connection connection;
String url = "jdbc:sqlserver://localhost:1433;databaseName=Lista;integratedSecurity=true";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(url);
when i am trying to insert some values to the database like-
PreparedStatement ps = connection.prepareStatement("INSERT INTO user_informations VALUES(?,?,?)");
ps.setString(1, "value");
ps.setString(2, "value");
ps.setString(3, "value");
ps.executeUpdate();
getting the following error each time-
com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication
Here are some informations about what i have tried yet-
- i have added the path of
sqljdbc41in the path variable. - i have added the path of
sqljdbc_auth.dllin the path variable. - i have added the
sqljdbc41.jarinto myNebeansproject library. - i have added the
sqljdbc_auth.dllinto both bin folder underjdkandjre. - my
jdkis64 bitunder program files folder not in program file(x86). - jdbc driver folder is also in program file directory.
- sql server and sql server browser services are also running.
Edit
Now i experiencing a new thing-after restarting my pc when i deploy the project for the first time then it is working perfectly but when i make any change in my code and re-run the project it's not working!
回答1:
I solved my problem!
The error (described in my question above) i was getting because the glassfish server had not any access on sqljdbc42.jar file. so i have placed the sqljdbc42.jar file into my glassfish server in this location-
glassfish-4.1\glassfish\domains\domain1\lib
And it's now working perfectly.
Thank you everyone!
回答2:
The problem for me was that there were 2 java installations, one of them was the standard installation and it was 64bit, the other one was included in my oracle jdeveoper installation (it was the one used by the application giving that error) and surprisingly it was 32bit. I just put the correct dll in the java installation used by my application and everything went well
回答3:
sqljdbc_auth.dll is need to use windows authentication or Kerberos authentication.
Get the dll from Microsoft and install it either by:
- drop on application library folder
- drop on the java bin folder (attention if you have multiple java installations)
drop the library on some folder and then add the path in the command line:
java -Djava.library.path=<library path>...
The mssql-jdbc driver and the auth dll should be:
- on the same folder (but not mandatory)
- both from the same version
- for the same architecture (x86/x64) JVM is running.
Check also the jdbc compatibility matrix with java versions on the download page.
来源:https://stackoverflow.com/questions/32536608/this-driver-is-not-configured-for-integrated-authentication