java.lang.UnsatisfiedLinkError 在 teiid jboss 翻译器开发中从 FesApi 创建 EpcDocument 对象时出现异常

Posted

技术标签:

【中文标题】java.lang.UnsatisfiedLinkError 在 teiid jboss 翻译器开发中从 FesApi 创建 EpcDocument 对象时出现异常【英文标题】:java.lang.UnsatisfiedLinkError exception while creating EpcDocument object from FesApi with in teiid jboss translator development 【发布时间】:2020-06-15 23:02:33 【问题描述】:

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

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 环境中它给出了上述异常。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于java.lang.UnsatisfiedLinkError 在 teiid jboss 翻译器开发中从 FesApi 创建 EpcDocument 对象时出现异常的主要内容,如果未能解决你的问题,请参考以下文章