2009-08-14 18 views
3

好吧,我只是通過他的託管服務提供商爲我的客戶設置了專用服務器。他們在那裏安裝了plesk(9.2.1版本),這個專用服務器的一個注意事項是,如果我在控制面板外部(即使用SSH)執行任何任務,他們不保證支持該軟件組件。這很好,因爲我寧願使用控制面板來完成它,因爲我所要做的就是上傳一個war文件來安裝servlet。爲什麼不能使用CentOS,plesk 9.2.1和tomcat 5.5安裝solr 1.3.0?

雖然在安裝solr(1.3.0)的最新版本後,我得到了一個警告圖標,它給了我一個模糊的錯誤,如「應用程序的實際狀態不符合檢索到的狀態來自數據庫「。

這裏是日誌條目:

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的抱怨呢?

+0

我不知道我理解你的問題......你已經知道1.3.0是最新版本。 – 2009-08-15 03:36:10

回答

5

好的,這裏是問題!事實證明,tomcat的某些發行版沒有對xalan的引用,這是關於XPathFactory異常的來源。此錯誤可能會引起誤解,因爲它將solr/home屬性NOT BEING SET記錄爲錯誤。事實是,它正在設置。在10個問題中,9個出現solr/home目錄未設置的問題。

這就是我爲自己修復它的原因:我進入了/usr/share/tomcat5/shared/lib目錄,並創建了位於/usr/share/java目錄中的xalan-j2.jar文件的符號鏈接。重新啓動的Tomcat和Solr正確啓動!

其他一些提示: 編輯您正在上傳的solr.war文件中的web.xml文件,然後進行更改並重新進行修改。將目錄設置爲/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正確啓動,數據目錄將被創建。

希望這可以節省一個人很多時間。

-1

我很確定'solr/home property'並不是指名爲'solr/home'的目錄,而是一個環境變量或包含目錄路徑的系統屬性。
快速谷歌搜索出現了this page,其中該屬性被設置爲一個Java系統屬性:「-Dsolr.solr.home =/my/custom/solr/home/dir /」。

+1

是的,我明白這一點。當我提到solr/home時,我的意思是屬性solr.solr.home a.k.a. solr/home。不要讓正斜槓混淆你。閱讀我的答案。事實證明,這與solr/home沒有設置沒有關係。顯然,9次出現這個問題是因爲s​​olr/home沒有設置,所以SEVERE錯誤是有誤導性的。 – DJTripleThreat 2009-08-30 12:18:08