java - JBoss: native 库 sqljdbc_auth.dll 已加载到另一个类加载器中

标签 java sql-server jdbc jboss windows-authentication

更新:jboss 论坛上这个未回答的问题是描述我的确切问题的另一种方式:https://developer.jboss.org/thread/199888

原帖:我正在尝试在部署到 JBoss 7.x 的 Web 应用程序上进行集成身份验证。我通过将 sqljdbc_auth.dll 复制到 Windows/System32 或 {java location}/jre/bin 中,成功完成了一项工作。但是,如果两个或多个应用程序正在运行,我会收到一条错误消息,指出 Native Library sqljdbc_auth.dll 已在另一个类加载器中加载

我知道为什么会发生这个错误,并且 this question and answer有一个Tomcat解决方案。但我无法让它在 JBoss 中工作。实际上,将 dll 放入 jboss/bin 文件夹中会产生与之前完全相同的错误:

Failed to load the sqljdbc_auth.dll cause : 
Native Library C:\Jboss-eap-7.0\bin\sqljdbc_auth.dll already loaded in another classloader

如何配置 JBoss 和/或放置 sqljdbc_auth.dll

我的部署不位于任何模块或命名服务器实例下。我认为它简单地称为独立

我也尝试过这种方法,但我不知道将 jar 文件放在 JBoss 目录中的位置。我尝试将其部署为像 Web 应用程序一样的部署,并尝试将其复制到独立目录下的 lib 文件夹中。没有成功。

编辑:

我正在尝试按照发布的答案实现一个全局模块,但现在出现以下错误:

14:00:25,333 ERROR [stderr] (ServerService Thread Pool -- 121)
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver from 
[Module "deployment.MyWebapp.war:main" from Service Module Loader]

最佳答案

我假设您必须为 sql jdbc 驱动程序创建一个类似这样的模块。

<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
  <resources>
    <resource-root path="sqljdbc.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

并将此模块添加为每个已部署应用程序的依赖项。

我建议通过像这样编辑standalone.xml文件来声明这个模块为全局模块..

<subsystem xmlns="urn:jboss:domain:ee:4.0">
            <global-modules>
                <module name="com.microsoft.sqlserver" slot="main"/>
                 .
                 .
            </global-modules>
.
.
</subsystem>

并从您的个人应用程序中删除对此模块的依赖。

关于java - JBoss: native 库 sqljdbc_auth.dll 已加载到另一个类加载器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47775296/

相关文章:

python - 将 mssql 空间字段导入 geopandas/shapely 几何图形

sql - 用另一个表 SQL Server 中的值替换列中的 NA

mysql - 如何修复 : "No suitable driver found for jdbc:mysql://localhost/dbname" error when using pools?

java - 如何在java中输出无符号整数的绝对值

java - 使用 ArrayList 进行选择排序

sql-server - Zend Framework 2 Microsoft SQL Server 2008 数据库连接

java - 如何在 jdbc MySQL 查询中处理 0000-00-00 日期

java - 最佳实践 : where to place user i/o files for a JAR package

Java SE 6 : Why does Nimbus L&F cut for 4 pixels in JTextField?

java - 使用库编译项目时,java 中未找到类错误