2013-10-09 61 views
0

我正在嘗試將apache solr4.5與tomcat7.0集成。爲什麼tomcat7無法讀取我的context.xml?

這是我的問題,我在$ CATALINA_BASE/webapps下創建一個名爲「solr」的目錄,並在目錄結構的路徑下創建一個context.xml。

$ CATALINA_BASE/webapps /下的Solr/META-INF/context.xml的

context.xml中看起來像如下:

<?xml version="1.0" encoding="utf-8" ?> 
<Context docBase="/solr/home/root/solr.war"> 
    <Environment name="solr/home" type="java.lang.String" value="/solr/home/root" /> 
</Context> 

當我訪問「我期待本地主機:8080/Solr的/」,Solr的web應用程序應該正常工作,但我得到的是一些象這樣的錯誤:

HTTP Status 404 - /solr/ 

type Status report 

message /solr/ 

description The requested resource (/solr/) is not available. 

Apache Tomcat/7.0.26 

但根據Apache的tomcat7.0 documen噸,

個人背景信息元素可被明確定義:

  1. 在在/META-INF/context.xml應用程序文件內的單個文件。可以根據主機的copyXML 屬性將其複製到 $ CATALINA_BASE/conf/[enginename]/[主機名] /並重命名爲 應用程序的基本文件名加上「.xml」擴展名。

  2. 在$ CATALINA_BASE/conf/[enginename]/[hostname] /目錄中的單個文件(擴展名爲「.xml」)。上下文 路徑和版本將從文件的基本名稱( 文件名少於.xml擴展名)派生而來。該文件將始終優先於應用程序的META-INF目錄中打包的任何context.xml文件,其優先級爲 。

  3. 在主conf/server.xml中的主機元素內。

所以,請人給我一些線索,謝謝。

回答

0

如果您檢查位於/日誌的卡塔利娜日誌文件,你可能會看到Solr的一些誤區,其中之一將是:

SEVERE: Error filterStart 

這是由於方式登錄的變化一般現在在4.3版本的Solr中實現。請參閱SolrLogging - Using the example logging setup in containers other than Jetty以獲取在Tomcat中設置日誌記錄的必要步驟。

這應該可以解決您的問題。

+0

我知道SolrLogging從solr.war分隔,所以問題不是filterStart的錯誤。其實我可以通過在$ CATALINA_BASE/conf/[enginename]/[hostname] /solr.xml中聲明我的上下文來很好地運行solr,但是我只是不明白爲什麼我無法使用第一種方法方法mentiod在我的問題。 – David

0

試着將你的context.xml(所有的webapps)或solr.xml(僅Solr的)文件夾Catalina/localhost代替。

例如:

<Context docBase="webapps/solr.war" allowLinking="true" reloadable="true"> 
    <Environment name="solr/home" type="java.lang.String" value="/opt/solr" override="true" /> 
</Context> 

故障排除:

  • 檢查你的日誌,如:

    cd /var/log/tomcat? && tail -f *.log *.out *.txt 
    
相關問題