Native Library sqljdbc_auth.dll already loaded in another classloader

前端 未结 3 953
忘了有多久
忘了有多久 2020-11-28 10:58

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 on

相关标签:
3条回答
  • 2020-11-28 11:13

    Each web application has its own Classloader (isolating them). When you call the Class.forName() method, there is a static block which is trying to load the shared library (dll file) - so both your web apps are trying to load the shared lib, hence the error message when the second one attempts to load.

    The JDBC jar you have for sqlserver should be moved from being bundled with your wars, to the tomcat 7.0/lib folder and copy the sqljdbc_auth.dll to tomcat/bin folder - this way it will be in the tomcat parent classloader, and the class will only be loaded once.

    |----------------------------------|
    | sqljdbc*.jar     --> tomcat*/lib |
    |----------------------------------|
    | sqljdbc_auth.dll --> tomcat*/bin |
    |----------------------------------|
    
    0 讨论(0)
  • 2020-11-28 11:13

    The same error occurs in Jasper Studio.

    Probably not the best solution but place the sqljdbc4.jar in C:\Program Files (x86)\TIBCO\Jaspersoft Studio-6.1.0.final\features\jre.win32.win32.x86.feature_1.7.0.u80\jre\lib\ext and the sqljdbc_auth.dll in C:\Program Files (x86)\TIBCO\Jaspersoft Studio-6.1.0.final\features\jre.win32.win32.x86.feature_1.7.0.u80\jre\bin

    And it will work.

    0 讨论(0)
  • 2020-11-28 11:24

    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
    
    0 讨论(0)
提交回复
热议问题