2010-03-22 82 views
1

我的Solr 1.2並在端口8983上運行,並使用的Liferay 5.1.1的問題是如何配置的Solr在Liferay的JournalArticle表來搜索我已經安裝了Liferay的Solr的-Web插件但引發此異常的Liferay 5.1.1 Solr的插件ClassCastException異常

[SolrIndexSearcherImpl:79] Error while sending request to Solr 
java.lang.ClassCastException: com.liferay.portal.kernel.util.HttpUtil cannot be cast to com.liferay.portal.kernel.util.HttpUtil 
     at com.liferay.portal.kernel.util.HttpUtil._getUtil(HttpUtil.java:317) 
     at com.liferay.portal.kernel.util.HttpUtil.getHttp(HttpUtil.java:96) 
     at com.liferay.portal.kernel.util.HttpUtil.addParameter(HttpUtil.java:68) 
     at com.liferay.portal.search.solr.SolrIndexSearcherImpl.search(SolrIndexSearcherImpl.java:71) 
     at com.liferay.portal.search.solr.SolrSearchEngineUtil.search(SolrSearchEngineUtil.java:78) 
     at com.liferay.portal.search.solr.messaging.SolrReaderMessageListener.doCommandSearch(SolrReaderMessageListener.java:92) 
     at com.liferay.portal.search.solr.messaging.SolrReaderMessageListener.doReceive(SolrReaderMessageListener.java:75) 
     at com.liferay.portal.search.solr.messaging.SolrReaderMessageListener.receive(SolrReaderMessageListener.java:46) 
     at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:69) 
     at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:59) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:619) 
16:08:16,174 ERROR [SolrReaderMessageListener:49] Unable to process message [email protected] 
com.liferay.portal.kernel.search.SearchException: java.lang.ClassCastException: com.liferay.portal.kernel.util.HttpUtil cannot be cast to com.liferay.portal.kernel.util.HttpUtil 
     at com.liferay.portal.search.solr.SolrIndexSearcherImpl.search(SolrIndexSearcherImpl.java:81) 
     at com.liferay.portal.search.solr.SolrSearchEngineUtil.search(SolrSearchEngineUtil.java:78) 
     at com.liferay.portal.search.solr.messaging.SolrReaderMessageListener.doCommandSearch(SolrReaderMessageListener.java:92) 
     at com.liferay.portal.search.solr.messaging.SolrReaderMessageListener.doReceive(SolrReaderMessageListener.java:75) 
     at com.liferay.portal.search.solr.messaging.SolrReaderMessageListener.receive(SolrReaderMessageListener.java:46) 
     at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:69) 
     at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:59) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 

和BTW,這裏是我的Solr的Web Solr的-spring.xml

<beans> 
    <bean id="indexSearcher" class="com.liferay.portal.search.solr.SolrIndexSearcherImpl"> 
    <property name="serverURL" value="http://localhost:8983/solr/select" /> 
    </bean> 
    <bean id="indexWriter" class="com.liferay.portal.search.solr.SolrIndexWriterImpl"> 
    <property name="serverURL" value="http://localhost:8983/solr/update" /> 
    </bean> 
    <bean id="searchEngine" class="com.liferay.portal.search.solr.SolrSearchEngineImpl"> 
    <property name="name" value="Solr" /> 
    <property name="searcher" ref="indexSearcher" /> 
    <property name="writer" ref="indexWriter" /> 
    <property name="indexReadOnly" value="false" /> 
    </bean> 

<bean id="searchEngineUtil" class="com.liferay.portal.search.solr.SolrSearchEngineUtil" lazy-init="false"> 
    <constructor-arg ref="searchEngine" /> 
    <constructor-arg ref="searchReaderMessageListener" /> 
    <constructor-arg ref="searchWriterMessageListener" /> 
    </bean> 

,什麼會schema.xml中會在這種情況下looklike

回答

0

他HttpUtils類竟是改變,因此,要解決這個一個是與我們修改

0

似乎你的應用服務器中必須有多個portal-kernel.jar文件。

此jar不能至少包含在應用服務器門戶應用和插件,或者如果在如Tomcat servlet容器運行全局類路徑耳的範圍內進行復制。

+0

沒有,這個問題是不是在罐子裏的一個,以取代原來的內核類適合的要求,我搜索了tomcat目錄並發現的門戶kernel.jar但問題只有當我安裝插件的Solr的 形勢發生如下只有一個副本: 我的Solr服務器並在端口8983和Liferay的服務器在8080上運行,當我安裝插件的Solr我配置更新和選擇solr的URL,然後我得到了上面拋出的異常 – 2010-03-22 19:31:23