-1

我在尝试使用部署在 Jboss 服务器 java.lang.UnsatisfiedLinkError:com.f2i.energisticsStandardsApi.fesapiJNI.new_common_EpcDocument(Ljava/lang/String;)J at com.f2i 中的 Teiid Translator 读取 EpcDocument 中的 epc 文件时遇到此异常。 com.f2i.energisticsStandardsApi.common.EpcDocument.(EpcDocument.java:42) 上的 energisticsStandardsApi.fesapiJNI.new_common_EpcDocument(本机方法)

Static {
      try {
           //Also tried this way
           // System.load("D:\\fesapiEnv\\build\\fesapi\\install\\lib\\FesapiCpp.1.2.0.0.dll");
            System.loadLibrary("FesapiCpp.1.2.0.0");
        } catch (UnsatisfiedLinkError e) {
            System.out.println("UnsatisfiedLinkError : " + e.toString());
        }
      }
  public static void serializeEPC(String filePathwithName) {
        // This class allows an access to a memory package representing an EPC document.
        EpcDocument pck = new EpcDocument(filePathwithName);
        // This abstract class acts as a buffer between the RESQML (business) classes
        // and the persisted data.
        DataObjectRepository repo = new DataObjectRepository();
}

我还在 Jboss 的 bat 文件中添加了 DLL 文件(FesapiCpp.1.2.0.0.dll)加载的环境路径变量,如下设置 PATH=%jBOSS_HOME%\modules\system\layers\base\com\f2i\energisticsStandardsApi\main \lib;%PATH%

我正在使用的 fesApi jar 从下面的链接中编译

https://github.com/F2I-Consulting/fesapi

发生的奇怪事情是,当我运行独立程序时,它运行成功,但在 Jboss 环境中它给出了上述异常。

4

1 回答 1

0

实际上 energisticsStandardsApi.jar 在 Wildfly 服务器中作为独立模块加载,而我在单独的模块中使用它(RESQML 的 Teiid Translator)。上面提到的静态代码块在 Translator 模块中,我正在加载 DLL 文件,而 FesapiCpp.1.2.0.0 .dll 被 energisticsStandardsApi 模块消耗,因此在创建 EpcDocument 对象时会产生 java.lang.UnsatisfiedLinkError 异常。

于 2020-07-16T05:38:52.457 回答