簡體   English   中英

在Jetty中嵌入Solr時無法創建CoreContainer

[英]Unable to create a CoreContainer when embedding Solr in Jetty

我按照這篇文章上的說明進行操作: http : //javaskeleton.blogspot.de/2011/07/adding-solr-to-existing-web-application.html

當我嘗試執行此代碼時:

File home = new File(System.getProperty("solr.solr.home"));
CoreContainer container = new CoreContainer(home.getPath());
container.load();
EmbeddedSolrServer server = new EmbeddedSolrServer(container, "collection1");

我遇到以下錯誤:

org.apache.lucene.store.LockObtainFailedException:鎖定獲取超時:NativeFSLock @ C:\\ solr-4.6.0 \\ example \\ solr \\ collection1 \\ data \\ index \\ write.lock

經調查,在加載CoreContainer時會發出錯誤。 它嘗試將文件鎖定在顯然已鎖定的索引中。

進一步的調查顯示,SolrRequestFilter(由Jetty初始化的那個)也實例化了一個CoreContainer,我猜測他是犯罪者。 當我從web.xml中刪除SolrRequestFilter定義時,我能夠成功實例化CoreContainer和EmbeddedServer。

我正在尋找有關如何解決該問題的見解,因為它似乎應該可以工作。

您必須找到鎖定此索引的人。

另外,有幾種方法可能會有所幫助:

  • 自從您啟動嵌入式Solr以來,您需要確定Solr現在不在運行(我敢保證,這是導致此問題的99%)
  • 您可以手動刪除此鎖定文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM