Почему solr 1.3.0 не может быть установлен с использованием CentOS, Plesk 9.2.1 и Tomcat 5.5?

StackOverflow https://stackoverflow.com/questions/1280548

Вопрос

Хорошо, я только что настроил выделенный сервер для своего клиента через его хостинг-провайдера.Там установлен Plesk (версия 9.2.1), и одно из предостережений этого выделенного сервера заключается в том, что если я делаю что-либо ВНЕ панели управления (т.использовать SSH) для любой задачи, они не гарантируют поддержку этого программного компонента.Это нормально, потому что я все равно предпочитаю использовать для этого панель управления, поскольку все, что мне нужно сделать, это загрузить файл war для установки сервлета.

Однако вот в чем проблема: после установки последней версии solr (1.3.0) я получил значок предупреждения в Plesk и выдал неопределенную ошибку типа «Фактический статус приложения не соответствует статусу, полученному из базы данных». "

Вот запись в журнале:

Aug 17, 2009 11:16:15 PM org.apache.solr.servlet.SolrDispatchFilter init
INFO: SolrDispatchFilter.init()
Aug 17, 2009 11:16:15 PM org.apache.solr.core.SolrResourceLoader
locateInstanceDir
INFO: Using JNDI solr.home: /usr/share/solr
Aug 17, 2009 11:16:15 PM
org.apache.solr.core.CoreContainer$Initializer initialize
INFO: looking for solr.xml: /usr/share/solr/solr.xml
Aug 17, 2009 11:16:15 PM org.apache.solr.core.SolrResourceLoader <init>
INFO: Solr home set to '/usr/share/solr/'
Aug 17, 2009 11:16:15 PM org.apache.solr.core.SolrResourceLoader
createClassLoader
INFO: Reusing parent classloader
Aug 17, 2009 11:16:15 PM org.apache.solr.servlet.SolrDispatchFilter init
SEVERE: Could not start SOLR. Check solr/home property
java.lang.ExceptionInInitializerError
       at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:117)
       at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:69)
       at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
       at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
       at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
       at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
       at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
       at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
       at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
       at org.apache.catalina.core.StandardService.start(StandardService.java:448)
       at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: java.lang.RuntimeException: XPathFactory#newInstance()
failed to create an XPathFactory for the default object model:
http://java.sun.com/jaxp/xpath/dom with the
XPathFactoryConfigurationException:
javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory
implementation found for the object model:
http://java.sun.com/jaxp/xpath/dom
       at javax.xml.xpath.XPathFactory.newInstance(Unknown Source)
       at org.apache.solr.core.Config.<clinit>(Config.java:41)
       ... 20 more
Aug 17, 2009 11:16:15 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter SolrRequestFilter
java.lang.NoClassDefFoundError: Could not initialize class
org.apache.solr.core.SolrConfig
       at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:76)
       at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:221)
       at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
       at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
       at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
       at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
       at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
       at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
       at org.apache.catalina.core.StandardService.start(StandardService.java:448)
       at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:616)
       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Aug 17, 2009 11:16:15 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Aug 17, 2009 11:16:15 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/solr] startup failed due to previous errors

Каталог solr/home существует, так почему же solr жалуется на это?

Это было полезно?

Решение

Хорошо, вот в чем проблема!Оказывается, в некоторых дистрибутивах tomcat нет ссылки на xalan, отсюда и возникает исключение, касающееся XPathFactory.Эта ошибка может ввести в заблуждение, поскольку она регистрирует ошибку как проблему, связанную с тем, что свойство solr/home НЕ УСТАНОВЛЕНО.Правда в том, что это БЫЛО установлено.В 9 случаях из 10 проблема с запуском solr связана с тем, что не установлен каталог solr/home.

Вот как я это для себя исправил:я вошел в /usr/share/tomcat5/shared/lib каталог и создал символическую ссылку на файл xalan-j2.jar, который находился в /usr/share/java каталог.Перезапустил Tomcat и Solr загрузился!

Еще несколько советов:Отредактируйте файл web.xml в solr.war файл, который вы загружаете, un jaring, вносите изменения, а затем перезагружаете его.Установите каталог примерно так /usr/share/solr.Таким образом, если журналы не показывают, что он использует этот каталог как solr/home, значит, что-то не так.Также убедитесь, что solr/home выглядит примерно так:

/usr/share/solr/
/usr/share/solr/bin
/usr/share/solr/bin/rsyncd-stop
/usr/share/solr/bin/abo
/usr/share/solr/bin/scripts-util
/usr/share/solr/bin/snappuller-disable
/usr/share/solr/bin/backupcleaner
/usr/share/solr/bin/snapcleaner
/usr/share/solr/bin/rsyncd-disable
/usr/share/solr/bin/snapinstaller
/usr/share/solr/bin/commit
/usr/share/solr/bin/snappuller-enable
/usr/share/solr/bin/snappuller
/usr/share/solr/bin/backup
/usr/share/solr/bin/rsyncd-start
/usr/share/solr/bin/abc
/usr/share/solr/bin/rsyncd-enable
/usr/share/solr/bin/optimize
/usr/share/solr/bin/snapshooter
/usr/share/solr/bin/readercycle
/usr/share/solr/conf
/usr/share/solr/conf/schema.xml
/usr/share/solr/conf/solrconfig.xml
/usr/share/solr/conf/synonyms.txt
/usr/share/solr/conf/xslt
/usr/share/solr/conf/xslt/example_atom.xsl
/usr/share/solr/conf/xslt/luke.xsl
/usr/share/solr/conf/xslt/example_rss.xsl
/usr/share/solr/conf/xslt/example.xsl
/usr/share/solr/conf/elevate.xml
/usr/share/solr/conf/scripts.conf
/usr/share/solr/conf/protwords.txt
/usr/share/solr/conf/spellings.txt
/usr/share/solr/conf/admin-extra.html
/usr/share/solr/conf/stopwords.txt
/usr/share/solr/README.txt

с разрешениями пользователя:группы tomcat:tomcat.каталог данных будет создан, если solr запустится правильно.

Надеюсь, это сэкономит кому-то массу времени.

Другие советы

Я совершенно уверен, что «свойство solr/home» означает не каталог с именем «solr/home», а скорее переменную среды или системное свойство, которое содержит путь к каталогу.
Быстрый поиск в Google появился эта страница, где свойство установлено как системное свойство Java:"-Dsolr.solr.home=/my/custom/solr/home/dir/".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top