sqljdbc_auth.dll 已经加载到 Mule 独立服务器的另一个类加载器中
Posted
技术标签:
【中文标题】sqljdbc_auth.dll 已经加载到 Mule 独立服务器的另一个类加载器中【英文标题】:sqljdbc_auth.dll already loaded in another classloader in Mule standalone server 【发布时间】:2013-04-30 17:48:54 【问题描述】:我有一个 Mule 独立服务器,我有两个在 MuleStudio 中创建的 Mule 可部署档案,它们都连接到 SQL Server 并使用集成身份验证。无论我首先部署哪个存档都有效,第二个存档将失败并显示以下消息:
Apr 30, 2013 8:37:39 AM com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
WARNING: Failed to load the sqljdbc_auth.dll cause : Native Library C:\MuleCE\mule-standalone-3.3.1\lib\boot\sqljdbc_auth.dll already loaded in another classloader
Root Exception was: Cannot get connection for URL jdbc:sqlserver://SQL01;instanceName=APPS;databaseName=muletest;integratedSecurity=true : This driver is not configured for integrated authentication. ClientConnectionId:b4032f04-ddb4-464e-8b32-cd36e1882018(SQL Code: 0, SQL State: + null). Type: class java.sql.SQLException
ERROR 2013-04-30 08:37:54,061 [Mule.app.deployer.monitor.1.thread.1] org.mule.module.launcher.application.DefaultMuleApplication: null
java.sql.SQLException: Cannot get connection for URL jdbc:sqlserver://SQL01;instanceName=APPS;databaseName=muletest;integratedSecurity=true : This driver is not configured for integrated authentication.
我不太清楚这是如何工作的,所以如果我没有走在正确的轨道上,请告诉我,但我相信我的问题与这个问题有关 Native Library sqljdbc_auth.dll already loaded in another classloader 所以看起来我需要将 sqljdbc_auth.dll 放在共享库中。我的问题是我应该把它放在骡子的哪里? mule-standalone-3.3.1\lib 文件夹下有:boot、endorsed、mule、opt、shared、user。
另外,我如何告诉我的项目在创建 mule 可部署存档时引用该共享库?
【问题讨论】:
【参考方案1】:我将 sqljdbc4.jar 和 sqljdbc_auth.dll 复制到了 lib\opt 和 lib\shared\default 下的 mule-standalone-3.3.1 安装文件夹,重新启动了 mule 服务,它现在似乎可以工作了。我找不到有关 lib 下所有子文件夹用途的文档,所以如果这是最佳做法或是否有最佳做法,我不知道。
【讨论】:
以上是关于sqljdbc_auth.dll 已经加载到 Mule 独立服务器的另一个类加载器中的主要内容,如果未能解决你的问题,请参考以下文章