![](/img/trans.png)
[英]How do I load a native library (.so) from another native library (.so)?
[英]How to load native library(.so) in Apache SOLR Cloud mode?
我已經編寫了一個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目錄中,並進行了修改:
在solrconfig.xml中添加了lib dir =“ $ {solr.install.dir:../../../ ..} / lib /”
在SOLR_HOME / bin / solr文件中:
SOLR_START_OPTS =“ -Djava.library.path = $ SOLR_TIP / lib /”
請幫忙。 提前致謝。
最終,我找到了解決方案(信用歸我的上級之一)。 在雲模式下運行時,請遵循以下說明:
SOLR_HOME
內創建lib
目錄,並在SOLR_HOME
放置native-library(.so)文件。 在SOLR_HOME/bin/solr
文件中,將此行添加到SOLR_START_OPTS
:
SOLR_START_OPTS =“ -Djava.library.path = $ SOLR_TIP / lib /”
在每個節點庫中創建lib
文件夾(即SOLR_HOME / example / cloud / node1 / lib,SOLR_HOME / example / cloud / node2 / lib),並將所有自定義插件jar放入這些新創建的lib文件夾中。
在雲模式下重新啟動Solr。
希望會有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.