2013-10-09 2 views
0

Я пытаюсь интегрировать apache solr4.5 с tomcat7.0.Почему tomcat7 не может прочитать мой context.xml?

Вот моя проблема, я создаю каталог с именем «solr» под $ CATALINA_BASE/webapps и создаю 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 WebApp должен работать хорошо, но то, что я получил, некоторые ошибки, как это:

HTTP Status 404 - /solr/ 

type Status report 

message /solr/ 

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

Apache Tomcat/7.0.26 

но в соответствии с апач tomcat7.0 докумен т, может быть явно определен

Отдельные элементы контекста:

  1. В отдельном файле в /META-INF/context.xml внутри файлов приложения. Необязательно (на основе атрибута copy хоста HostXML ) он может быть скопирован в $ CATALINA_BASE/conf/[enginename]/[hostname]/и переименован в имя базового файла приложения плюс расширение «.xml».

  2. В отдельных файлах (с расширением «.xml») в каталоге $ CATALINA_BASE/conf/[enginename]/[hostname] /. Контекст путь и версия будут получены из базового имени файла (имя файла меньше расширения .xml). Этот файл всегда будет принимать приоритет над любым файлом context.xml, упакованным в каталог приложений META-INF приложения .

  3. Внутри элемента Host в главном conf/server.xml.

Так, пожалуйста, кто-нибудь дать мне некоторые подсказки, спасибо.

ответ

0

Если проверить файл журнала Каталины, расположенный в/журналах, вы, вероятно, увидите некоторые ошибки из Solr, один из которых будет:

SEVERE: Error filterStart 

Это связано с изменением пути, что каротажного в общий теперь реализован в Solr с версии 4.3. Пожалуйста, обратитесь к SolrLogging - Using the example logging setup in containers other than Jetty за необходимыми шагами для настройки ведения журнала в Tomcat.

Это должно решить вашу проблему.

+0

Я знаю, что SolrLogging отделяется от solr.war , поэтому проблема не в ошибке filterStart. На самом деле я могу запустить solr со вторым методом, объявив свой контекст в $ CATALINA_BASE/conf/[enginename]/[hostname] /solr.xml, но я просто не понимаю, почему я не могу сделать это с первого метод mentiod в моем вопросе. – David

0

Попробуйте поместить context.xml (для всех веб-приложений) или 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 
    
Смежные вопросы