【问题标题】:websphere shared library native path not loadingwebsphere共享库本机路径未加载
【发布时间】:2013-12-26 20:11:39
【问题描述】:

我正在使用Websphere Application Server v7.0.0.29 版本。我的目标是将一些本机库添加到 Websphere 共享库中。在共享库中添加本机路径并将其引用到应用程序时,相应的路径会在AppSrvr/config/cells/CellName/Cluster/library.xml 中正确更新。

但是,我看不到我在 SystemOut.log 文件 "Java Library Path" 中添加的本机库路径。 (应用程序未加载路径)。类加载器也没有它。即使在引用之后。我尝试完全关闭所有WAS and JVM 进程并重新启动,但没有成功。

请建议我该如何进行?

问候, 钱德鲁

【问题讨论】:

  • 您是否在服务器或集群级别设置了参数?你在普通的服务器实例上试过吗?
  • 我在集群级别引用了共享库。我还可以看到 AppServer->ClassLoader->Library Reference 下引用了相同的共享库。但不在类加载器树或 WAS 日志中的 neitehr 中。但是我可以通过将它们直接添加为 AppServer->JVM->customproperties 下的变量(java.library.path)来加载库,但要求是它只能通过共享库加载。

标签: jvm websphere-7


【解决方案1】:

很抱歉,我错过了更新此问题的解决方案。这似乎是一个非常奇特的问题。我在 IBM 提出了一个 PMR,通过硬重启物理服务器完全解决了这个问题,之后本地库加载正常。

我的猜测是同一 JRE 的其他一些 JVM 实例仍在运行,这可能导致了问题。

无论如何,如果你们中的任何人碰巧遇到这个问题,硬重启服务器可能是一个可以考虑的解决方案,因为它在我的情况下已解决。

问候,
钱德鲁

【讨论】:

    【解决方案2】:

    需要将本机库路径添加到包含尝试加载该类的类的类加载器。例如,如果使用本机库的类在应用程序中,则必须将本机库路径添加到应用程序,或者如果该类在 WAR 中,则必须将本机库路径添加到该 WAR 模块.如果类位于 EJB、实用程序 JAR 或 WAR 中,则无法将本机库路径添加到应用程序服务器类加载器。

    (也就是说,即使本地库路径配置正确,本地库错误消息有时也会产生误导。我建议更新您的问题以包含完整的错误消息。)

    【讨论】:

    • 当引用类在war文件中时,您能解释一下如何添加本机库路径吗?我曾尝试使用 WAS 的 System.loadlibrary("sharedlibname") 但它不起作用。
    • @AC_1985 我使用 WAS 已经太久了(这个答案已经超过 5 年了)。也许不能直接做;也许它需要在共享库上指定本机路径并将共享库与 WAR 类加载器相关联。如果您无法弄清楚这一点,我建议您打开一个引用此答案的新问题,以便知识渊博的人可以回答。
    • 我可以通过将 dll 放在服务器 lib 的本机文件夹路径中使其在 websphere 中工作。
    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 2016-02-26
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    相关资源
    最近更新 更多