Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在ApacheSolr云模式下加载本机库(.so)?_Java_Apache_Solr_Lucene - Fatal编程技术网

Java 如何在ApacheSolr云模式下加载本机库(.so)?

Java 如何在ApacheSolr云模式下加载本机库(.so)?,java,apache,solr,lucene,Java,Apache,Solr,Lucene,我已经编写了一个SOLR自定义查询解析器(org.apache.SOLR.search.QParser的实现)。我的查询解析器使用一些第三方JAR。其中一个第三方jar需要本机库(.so文件)才能工作。在非云模式下运行solr时,此插件工作正常,但在云模式下运行时,solr会抛出以下错误: java.lang.UnsatisfiedLinkError: Native Library /opt/solr-6.2.0/lib/xyz.so already loaded in another clas

我已经编写了一个SOLR自定义查询解析器(org.apache.SOLR.search.QParser的实现)。我的查询解析器使用一些第三方JAR。其中一个第三方jar需要本机库(.so文件)才能工作。在非云模式下运行solr时,此插件工作正常,但在云模式下运行时,solr会抛出以下错误:

java.lang.UnsatisfiedLinkError: Native Library /opt/solr-6.2.0/lib/xyz.so already loaded in another classloader
我将所有第三方和查询解析器JAR和.so文件保存在SOLR_HOME/lib目录中,并修改了:

  • 将lib dir=“${solr.install.dir:../../../}/lib/”添加到solrconfig.xml中

  • 在SOLR_HOME/bin/SOLR文件中:

    SOLR_START_OPTS=“-Djava.library.path=$SOLR_TIP/lib/”


  • 请帮忙。提前感谢。

    最后,我找到了解决方案(这要归功于我的一位大四学生)。在云模式下运行时,请遵循以下说明:

  • SOLR\u HOME
    中创建
    lib
    目录,并将本机库(.so)文件放在那里
  • SOLR\u HOME/bin/SOLR
    文件中,将此行添加到
    SOLR\u START\u选项中

    SOLR_START_OPTS=“-Djava.library.path=$SOLR_TIP/lib/”

  • 在每个节点库(即SOLR_HOME/example/cloud/node1/lib、SOLR_HOME/example/cloud/node2/lib)中创建
    lib
    文件夹,并将所有自定义插件jar放入这些新创建的lib文件夹中

  • 在云模式下重新启动solr

  • 希望,这会有帮助