Установленный Solr: показывает запущенный, но видящий 404 on /solr


Мои версии:

CentOS 6.5 x86_64 kvm
Java 1.7.0_65
Solr 4.9.0
Tomcat6.0.24

Я все еще изучаю, как установить Solr для моей установки Drupal. Я следовал нескольким учебникам по настройке этого устройства. Java и Tomcat работают прямо сейчас. Я открыл порт 8080 на моих iptables так: 8080 загружает страницу Tomcat.

Моя текущая настройка идет:

Я схватил то, что было в папке /example/solr, Когда я загружал Solr и распаковал это в новую папку под названием solr, расположенную здесь:

/var/lib/tomcat6/webapps/solr/WEB-INF 

Я установил прямо здесь, так как учебник заставил меня пропустить шаг для размещения solr.xml-файл здесь, чтобы указать на другое место, например /opt / solr/ или что-то еще:

Итак, чтобы еще больше прояснить, моя файловая структура здесь идет.

/solr/
  |--/bin/
  |--/collection1/
  |--/drupalsolr/   (this is my core/instace)
  |--/conf/
  |--solr.xml
  |--zoo.cfg
/solr.war
/weblogic.xml (was in here originally)

Когда я посещаю :8080 и затем нажимаю на Tomcat Manager, я вижу, что /solr "работает". И все же, когда я нажимаю /solr здесь. Это дает мне ошибку 404.

HTTP Status 404 - /solr/

type Status report

message /solr/

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

Apache Tomcat/6.0.24

С чего мне начать исправление этого? Есть ли какие-либо ошибки, которые я могу найти, кроме ошибки 404 not found?


Обновление:

Хорошо, я следую этому уроку с тем, как они использовали файл контекстного пути и установили Solr вне папки Tomcat. Вместо этого я переместил его в /opt/solr и отредактировал созданный контекстный путь web.xml-файл, который находится здесь: /var/lib/tomcat6/webapps/solr/WEB-INF/web.xml

Вот что я отредактировал в интернете.теперь xml-файл:

<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/opt/solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>

Теперь я получаю ошибку "FAIL: Application at context path /solr could not be started". Так что я предполагаю, что это означает мое настоящее ядро Solr не настроен должным образом. Я погуглила вокруг, и это может быть мой .файл jar. Трудно сказать без соответствующей ошибки.

Я также убедился, что мой $JAVA_HOME установлен в /urs/local/jdk

Вот ошибки, образующие журнал:

Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive solr.war
Aug 07, 2014 3:31:01 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Aug 07, 2014 3:31:01 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/solr] startup failed due to previous errors
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory sample
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Aug 07, 2014 3:31:01 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Aug 07, 2014 3:31:01 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Aug 07, 2014 3:31:01 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/15  config=null
Aug 07, 2014 3:31:01 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 885 ms
Aug 07, 2014 3:37:14 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Aug 07, 2014 3:37:15 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Aug 07, 2014 3:37:15 PM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
2 2

2 ответа:

Порт solr по умолчанию равен 8983 или установлен в конфигурации solr, а затем, как было отмечено здесь структура URL-адреса

http://localhost:8983/solr/{{solrCoreName}}

Если это не работает, возможно, стоит проверить, что служба solr действительно работает (для ubuntu / debian - > service solr 8983 status или аналогично для вашего дистрибутива или путем проверки списка процессов).

Состояние HTTP 404 означает, что запрошенный ресурс не существует.

Мы можем прочитать в Tomcat 7 per-Request функциональность , что:

На каждый HTTP-запрос GET обрабатывается этот сервлет, следующие обработка производится:

  • если запрос относится к ресурсу под /META-INF или /WEB-INF, верните HTTP статус 404 (не найден).
  • если запрошенный ресурс не существует , верните http status 404 (не найденный).
  • если запрошенный ресурс не является каталогом , но путь к ресурсу заканчивается в / или \, верните http status 404 (не найден).
  • если запрашиваемый ресурс является каталогом: Если списки каталогов подавлены , верните http status 404 (не найден).

Запросы на ресурсы, которые не существуют в веб-приложении (папка), должны возвращать состояние HTTP 404 (не найдено).

Если вы проверили выше и ваше приложение существует, а ошибка все еще существует, проверьте следующее:

  • Файл WAR развертывается (например, solr.war) в папке webapps/, которая должна быть обозначена следующей записью в журнале:

    Информация: развертывание архива веб-приложений solr.война

  • Проверьте журналы, например:

    cd /var/log/tomcat? && tail -f *.log *.txt *.out
    

    Затем снова нажмите на страницу.

  • Проверьте, работает ли приложение в Tomcat Web Диспетчер приложений (at /manager/html). Перезарядите на всякий случай.

  • Проверьте права доступа к файлам, если Tomcat имеет доступ к своим файлам, например:

    sudo chown -R tomcat7 /var/lib/tomcat7/
    
  • Проверьте/переименуйте/удалите .properties файлы в solr/WEB-INF (на всякий случай).
  • Перезапускайте службу Tomcat на всякий случай (каждый раз, когда вы что-то меняете).
  • дважды проверьте, не происходит ли та же проблема на локальном сервере (например, с помощью links).
  • Проверьте, присутствует ли web.xml в папке WEB-INF/ вашего приложения, если нет, следуйте следующему пункту.
  • Переименуйте / удалите соответствующие папки для файлов WAR (например, solr/ для solr.war), чтобы они могли быть повторно созданы при перезапуске Tomcat (сделайте резервную копию, если вы что-то там изменили). Или просто заново развернуть файлы войны с нуля.

Устранение неполадок / отладка:

  • увеличьте уровень регистратора Tomcat (logging.properties) до FINEST и снова проверьте журналы.
  • Используйте strace для отладки Tomcat (в то время, когда вы нажмете на страницу), например пример:

    sudo strace -fe file -p 1234
    

    Где 1234 - PID вашего процесса Tomcat (проверьте через: ps wuax | grep tomcat). Вместо file вы также можете использовать network, write, и т.д.