为什么不能使用CentOS,plesk 9.2.1和tomcat 5.5来安装solr 1.3.0?

好的,我只是通过他的托管服务提供商为我的客户设置专用服务器。 他们在那里安装了plesk(版本9.2.1),这个专用服务器的一个注意事项是,如果我在控制面板外面做任何事情(即使用SSH)进行任何任务,他们不保证支持该软件组件。 这很好,因为我宁愿使用控制面板来完成它,因为我所要做的就是上传一个war文件来安装servlet。

这是问题,但是在安装最新版本的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  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.(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.(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.(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抱怨这个?

好的,这是问题! 事实certificate,tomcat的某些发行版没有对xalan的引用,这是关于XPathFactory的exception来源。 此错误可能会产生误导,因为它将错误记录为solr / home属性NOT BEING SET的问题。 事实是,它已被设定。 启动solr的问题是9次中的9次是由于未设置solr / home目录。

这就是我为自己修复它的方法:我进入了/usr/share/tomcat5/shared/lib目录并创建了一个符号链接到xalan-j2.jar文件,该文件位于/usr/share/java目录中。 重新启动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正常启动,将创建数据目录。

希望这会为某人节省大量时间。

我很确定’solr / home property’并不意味着名为’solr / home’的目录,而是一个环境变量或包含目录路径的系统属性。
快速谷歌搜索出现在这个页面 ,其中属性被设置为java系统属性:“ – Dsolr.solr.home = / my / custom / solr / home / dir /”。