首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >本机库sqljdbc_auth.dll已加载到另一个类加载器中

本机库sqljdbc_auth.dll已加载到另一个类加载器中
EN

Stack Overflow用户
提问于 2012-05-17 22:24:00
回答 3查看 31.2K关注 0票数 24

我有2个java web应用程序,需要使用Windows集成身份验证连接到SQL Server数据库。

加载的第一个可以正常工作,但是第二个会抛出异常:

代码语言:javascript
复制
Native Library sqljdbc_auth.dll already loaded in another classloader

当我将sqljdbc_auth.dll放入其中一个文件夹时,出现上述错误:

  • C:\WINDOWS\system32\
  • C:\Program文件\Apache Software Foundation\Tomcat7.0\bin\

如果我将sqljdbc_auth.dll放在下面的某个文件夹中:

每个web的Apache文件\Apache Software application

  • C:\Program \Tomcat7.0\lib\

  • /WEB-INF/lib目录

两个应用程序都会抛出异常:

代码语言:javascript
复制
Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.path

我使用下面的代码来加载驱动程序:

代码语言:javascript
复制
Class.forName("jdbc:sqlserver://<HOST>;databaseName=<DBNAME>;integratedSecurity=true;");

我该怎么解决它呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-18 07:54:06

每个web应用程序都有自己的Classloader (隔离它们)。当你调用Class.forName()方法时,有一个静态块试图加载共享库(dll文件)-所以你的两个web应用程序都在尝试加载共享库,因此当第二个应用程序试图加载时会出现错误消息。

用于sqlserver的JDBC jar应该从绑定到way的JDBC jar移到tomcat 7.0/lib文件夹,并将sqljdbc_auth.dll复制到tomcat/bin文件夹-这样它就会在tomcat父类加载器中,并且类只会被加载一次。

代码语言:javascript
复制
|----------------------------------|
| sqljdbc*.jar     --> tomcat*/lib |
|----------------------------------|
| sqljdbc_auth.dll --> tomcat*/bin |
|----------------------------------|
票数 34
EN

Stack Overflow用户

发布于 2012-05-18 18:30:30

我认为你在正确的轨道上。

对于命令行启动,您可以通过设置环境变量轻松地解决no sqljdbc_auth in java.library.path问题

代码语言:javascript
复制
CATALINA_OPTS=-Djava.library.path=/path/to/dll

如果将tomcat作为服务运行,请更改下面的Options参数

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

包括:

代码语言:javascript
复制
-Djava.library.path=/path/to/dll
票数 1
EN

Stack Overflow用户

发布于 2016-08-24 14:16:24

同样的错误也发生在Jasper Studio中。

可能不是最好的解决方案,但是将sqljdbc4.jar放在C:\Program Files (x86)\TIBCO\Jaspersoft Studio-6.1.0.final\features\jre.win32.win32.x86.feature_1.7.0.u80\jre\lib\ext中,将sqljdbc_auth.dll放在C:\Program Files (x86)\TIBCO\Jaspersoft and中

它会起作用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10637585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档