JBoss: 本机库 sqljdbc_auth.dll 已经加载到另一个类加载器中
JBoss: Native Library sqljdbc_auth.dll already loaded in another classloader
更新:jboss 论坛上的这个未回答的问题是描述我的确切问题的另一种方式:https://developer.jboss.org/thread/199888
原文post:我正在尝试在部署到 JBoss 7.x 的 Web 应用程序上进行集成身份验证。通过将 sqljdbc_auth.dll 复制到 Windows/System32 或 {java 位置}/jre/bin,我成功完成了一项工作。但是,如果两个或多个应用程序是 运行,我将收到一条错误消息,指出 Native Library sqljdbc_auth.dll already loaded in another classloader
我知道为什么会出现这个错误,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、and/or 放置 sqljdbc_auth.dll
?
我的部署不在任何模块或命名服务器实例下。我认为它只是简单地称为独立
我也尝试过这种方法,但我不知道把 jar 文件放在哪里,在 JBoss 目录中。我尝试将其部署为像 Web 应用程序一样的部署,并尝试将其复制到独立的 lib 文件夹中。没有成功。
编辑:
我正在尝试根据 posted 的回答实施全局模块,但现在出现以下错误:
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>
并从您的个人应用程序中删除对该模块的依赖。
更新:jboss 论坛上的这个未回答的问题是描述我的确切问题的另一种方式:https://developer.jboss.org/thread/199888
原文post:我正在尝试在部署到 JBoss 7.x 的 Web 应用程序上进行集成身份验证。通过将 sqljdbc_auth.dll 复制到 Windows/System32 或 {java 位置}/jre/bin,我成功完成了一项工作。但是,如果两个或多个应用程序是 运行,我将收到一条错误消息,指出 Native Library sqljdbc_auth.dll already loaded in another classloader
我知道为什么会出现这个错误,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、and/or 放置 sqljdbc_auth.dll
?
我的部署不在任何模块或命名服务器实例下。我认为它只是简单地称为独立
我也尝试过这种方法,但我不知道把 jar 文件放在哪里,在 JBoss 目录中。我尝试将其部署为像 Web 应用程序一样的部署,并尝试将其复制到独立的 lib 文件夹中。没有成功。
编辑:
我正在尝试根据 posted 的回答实施全局模块,但现在出现以下错误:
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>
并从您的个人应用程序中删除对该模块的依赖。