2009-08-14 3 views
3

Ok Ich habe nur einen dedizierten Server für meinen Kunden über seinen Hosting-Provider eingerichtet. Sie haben plesk installiert (Version 9.2.1) und eine der Vorbehalte dieses dedizierten Servers ist, dass, wenn ich etwas außerhalb des Control Panel (d. H. SSH) für jede Aufgabe tun sie keine Unterstützung für diese Software-Komponente garantieren. Das ist in Ordnung, weil ich lieber das Kontrollfeld dazu verwenden möchte, da ich lediglich eine WAR-Datei hochladen muss, um das Servlet zu installieren.Warum kann solr 1.3.0 nicht mit CentOS, plesk 9.2.1 und tomcat 5.5 installiert werden?

Hier ist das Problem, nach der Installation der neuesten Version von solr (1.3.0) Ich habe ein Warnsymbol in Plesk und es gab mir einen vagen Fehler wie "Aktueller Status der Anwendung entspricht nicht dem Status abgerufen aus der Datenbank. " Hier

ist der Protokolleintrag:

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 

Das solr/home-Verzeichnis vorhanden ist, also warum ist solr darüber beschweren?

+0

Ich bin mir nicht sicher, ob ich Ihre Frage verstehe ... Sie wissen bereits, dass 1.3.0 die neueste Version ist. –

Antwort

5

Ok hier ist das Problem! Es stellt sich heraus, dass einige Verteilungen von tomcat keinen Bezug zu xalan haben, von wo die Ausnahme bezüglich XPathFactory kommt. Dieser Fehler kann irreführend sein, da er den Fehler als ein Problem mit der Eigenschaft solr/home NOTING SET protokolliert. Die Wahrheit ist, dass es eingestellt wurde. 9 mal von 10 ist ein Problem beim Starten von solr darauf zurückzuführen, dass das Verzeichnis solr/home nicht gesetzt ist.

So habe ich es für mich selbst behoben: Ich ging in das Verzeichnis /usr/share/tomcat5/shared/lib und erstellte einen Symlink zur Datei xalan-j2.jar, die sich im Verzeichnis /usr/share/java befand. Neustart von Tomcat und Solr hochgefahren!

Einige andere Tipps: Bearbeiten Sie die Datei web.xml in der Datei solr.war, die Sie hochladen, indem Sie sie hochladen, Ihre Änderung vornehmen und sie erneut vererben. Stellen Sie das Verzeichnis auf etwa /usr/share/solr. Auf diese Weise, wenn die Logs nicht anzeigen, dass sie dieses Verzeichnis als solr/home verwenden, ist etwas nicht in Ordnung. Stellen Sie außerdem sicher, dass solr/home etwa wie folgt aussieht:

/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 

mit Benutzer: Gruppenberechtigungen sein tomcat: tomcat. Das Datenverzeichnis wird erstellt, wenn solr ordnungsgemäß gestartet wird.

Hoffentlich wird dies jemand eine Menge Zeit sparen.

-1

Ich bin mir ziemlich sicher, dass 'solr/home property' kein Verzeichnis namens 'solr/home' bedeutet, sondern eine Umgebungsvariable oder eine Systemeigenschaft, die den Pfad des Verzeichnisses enthält.
Eine schnelle Google-Suche ergab sich this page, wo die Eigenschaft als eine Java-Systemeigenschaft festgelegt ist: "-Dsolr.solr.home =/my/custom/solr/home/dir /".

+1

Ja, ich verstehe das. Wenn ich solr/home erwähne, meine ich das Eigentum solr.solr.home a.k.a. solr/home. Lass dich nicht vom Schrägstrich verwechseln. Lies meine Antwort. Es stellt sich heraus, dass es NICHTS damit zu tun hat, dass solr/home nicht gesetzt ist. Offenbar 9 von 10 Fällen ist dieses Problem wegen solr/home nicht gesetzt, so dass der SEVERE Fehler irreführend ist. – DJTripleThreat