0

我正在开发一个 java Web 应用程序,它使用 com4j 库连接到外部数据库并从外部数据库中提取数据。我的应用程序在运行 maven/jetty 设置的本地主机上无缝运行。

但是,我需要将应用程序托管在我不是管理员的 WebLogic 服务器上。在那里部署和启动 web 应用程序时,我得到一个不满意的链接异常,如下所示。

我一直在尝试许多针对类似问题的建议解决方案,但没有任何运气。错误会不时发生轻微变化,但大体相同。我找到的所有建议解决方案都可以归结为三个建议,可在此站点上找到:https ://com4j.java.net/deployment.html

  • 打包 jar 时它应该会自动工作: 它不会。jar 肯定在 war-file 中,而 dll 在 .jar 中,但仍然发生相同的异常。

  • 将 com4j.dll 放在与 com4j.jar 相同的目录中: 对错误消息完全没有任何作用。

  • 将系统属性 java.library.path 设置为包含 com4j.dll 所在的目录:错误更改为 .dll 已在另一个 ClassLoader 中加载。

我当时试过一个,一次都试过,还有以上不同的组合。

我不指望一个巫师突然俯冲下来告诉我在这里做什么,但我希望有人能帮助我找到解决这个问题的另一个角度。

    <11-06-2014 15:23:34 CEST> <Error> <Deployer> <BEA-149265> 
    <Failure occurred in the execution of deployment request with ID 
    '1402493014299' for task '158'. Error is: 

    'weblogic.application.ModuleException: Unable to load com4j.dll'
     weblogic.application.ModuleException: Unable to load com4j.dll
        at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1401)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:460)
        at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
        at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
        Truncated. see log file for complete stacktrace

    Caused By: java.lang.UnsatisfiedLinkError: no com4j-x86 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1028)
    at com4j.COM4J.loadNativeLibrary(COM4J.java:530)
    at com4j.COM4J.<clinit>(COM4J.java:522)
    Truncated. see log file for complete stacktrace
> 
4

1 回答 1

0

您的问题的解决方案可能在这里解释: https ://com4j.java.net/deployment.html

您可以通过多种方式设置java.library.path变量:

在您的域中修改 startWebLogic 脚本。

或者

登录到 weblogic 管理员控制台,转到环境 -> 服务器 -> 我的服务器 -> 服务器开始选项卡 -> 添加参数:文本字段-Djava.library.path=PATH_TO_LIBRARY

于 2014-06-26T14:50:24.540 回答