2017-02-01 50 views
3

Solr Spring訪問Solr服務器時,在該url中插入額外的核心名稱。這可以從以下錯誤中看出。初始錯誤正確指出了URL,但從Solr返回的http錯誤指出訪問的URL與核心(工作區)重複。URL中的重複內核發送到solr從彈簧啓動solr數據

錯誤

Caused by: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://x.x.x.x:8983/solr/workspaces: Expected mime type application/octet-stream but got text/html. 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 
<title>Error 404 Not Found</title> 
</head> 
<body><h2>HTTP ERROR 404</h2> 
<p>Problem accessing /solr/workspaces/workspaces/select. Reason: 
<pre> Not Found</pre></p> 
</body> 
</html> 

Document.java

@SolrDocument(solrCoreName="workspaces") 
public class Workspace 
{ 
} 

在SolrContext.java還定義, 「multicoreSupport =真」 在頂部

@Bean 
public SolrClient solrClient() 
{ 
    SolrClient retval = new HttpSolrClient.Builder(environment.getRequiredProperty(PROPERTY_NAME_SOLR_SERVER_URL)).build(); 

    return retval; 
} 

@Bean 
public SolrTemplate solrTemplate() 
{ 
    return new SolrTemplate(solrClient()); 
} 

我試圖在一個點添加額外的@Beans與SolrTemplate,每個核心一個。然後,網址最終將每個核心添加到網址。很奇怪。我正在訪問的存儲庫非常標準。

public interface WorkspaceRepository extends SolrCrudRepository<Workspace, String> 
{ 
    List<Workspace> findByUserId(String userId); 
} 

這是使用:

  • 彈簧引導起動數據的solr-1.5.1.RELEASE
  • 的solr-solrj-6.3.0
  • 彈簧數據的solr -2.1.0.RELEASE

注意,我開始與用彈簧數據的Solr-2.1.0定義的默認的Solr-solrj,但得到了同樣的問題,所以我就調升6.3.0。

無論如何,我希望有人以前見過這個,並且可以爲我做錯的事情添加一些指導。

感謝

回答

2

我有完全相同的問題,並通過使用Spring引導版本1.4.3.RELEASE解決它,而不是1.5.1.RELEASE ...

+0

謝謝。我降級到1.4.4.RELEASE並刪除了對solr-solrj-6.3.0的依賴,問題就消失了。 (它默認回到5.5.3。 – OldManCoder

+0

嗯......但是如果我還想升級我的Spring Boot for 1.5.1呢? –

+0

降級只是一個短期的解決方案,Dave Burke實際上創造了一個問題[在春季啓動跟蹤器](https://github.com/spring-projects/spring-boot/issues/8327)來弄清楚發生了什麼,注意更新 –