Установленный 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 ответа:
Порт 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
).- Проверьте, присутствует ли
Переименуйте / удалите соответствующие папки для файлов WAR (например,web.xml
в папкеWEB-INF/
вашего приложения, если нет, следуйте следующему пункту.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
, и т.д.