Alex Rivera | Logout

Native Library sqljdbc_auth.dll already loaded in another classloader

Asked 2012-05-17T14:24:00.440
24

I have 2 java web apps that need to connect to SQL Server Database using Windows Integrated Authentication.

The first one that is loaded works fine but the second one throws the exception:

Native Library sqljdbc_auth.dll already loaded in another classloader

The error above occurs when I place the sqljdbc_auth.dll in one of the folders:

  • C:\WINDOWS\system32\
  • C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\

If I place the sqljdbc_auth.dll in one of the folders below:

  • /WEB-INF/lib directory of each web application
  • C:\Program Files\Apache Software Foundation\Tomcat 7.0\lib\

Both apps throw the exception:

Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.path

I am using this code to load the driver:

Class.forName("jdbc:sqlserver://<HOST>;databaseName=<DBNAME>;integratedSecurity=true;");

How can I solve it?

Edit
Report

1 Answer

1

I think you are on the right track.

For command line startup you can easily solve the no sqljdbc_auth in java.library.path issue by setting the environment variable

CATALINA_OPTS=-Djava.library.path=/path/to/dll

If you are running tomcat as a service, change the Options parameter under

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat7\Parameters\Java

to include:

-Djava.library.path=/path/to/dll
answered 2012-05-18T10:30:30.393

Your Answer