Elasticsearch7.x插件加载本地so库文件失败。

问题描述 投票:0回答:1

我开发了一个分析器插件。插件使用的是C语言so库文件,但是当我调用插件分词时,本地库链接失败。

Caused by: 
 java.lang.UnsatisfiedLinkError:   
 com.***.JNIWrapper.seg_segment(Ljava/lang/String;IZZLjava/lang/String;)Ljava/lang/String;

Caused by: 
org.elasticsearch.ElasticsearchException: failed to analyze;

我在插件的plugin-security.policy 文件中尝试了以下操作:

grant codeBase 
   "/opt/elasticsearch/elasticsearch-7.1.0/plugins/analysis-plugin/plugin.jar" 
    {
    permission java.security.AllPermission;
    permission java.lang.RuntimePermission "createClassLoader";
    permission java.lang.RuntimePermission "getProtectionDomain";
    permission java.lang.RuntimePermission "getClassLoader";
    permission java.io.FilePermission
    "/opt/elasticsearch/elasticsearch-7.1.0/plugins/analysis-     
     plugin/Linux-amd64-64/lib.so", "read";
   };

但这行不通。

java elasticsearch centos7 elasticsearch-plugin
1个回答
0
投票

我通过“AccessController.doPrivileged”解决了我的问题,谢谢你们。

© www.soinside.com 2019 - 2024. All rights reserved.