org.apache.solr.common.SolrException:加载类“solr.VelocityResponseWriter”时出错

我已经安装了一个Apache Tomcat 6服务器,并按照http://pabloseminario.com/2011/02/22/installing-solr-on-debian-6-0/中的说明安装了Apache Solr 3.5.0。

现在,在浏览器中打开solr应用程序会产生以下错误:

HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you want solr to continue after configuration errors, change: <abortOnConfigurationError>false</abortOnConfigurationError> in solr.xml ------------------------------------------------------------- org.apache.solr.common.SolrException: Error loading class 'solr.VelocityResponseWriter' at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:389) at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:425) at org.apache.solr.core.SolrCore.createInitInstance(SolrCore.java:447) 

我的装置目前对公众开放供testing用途:

http://62.75.247.116:8080/solr/

我在Debian 6机器上运行。

我做了一些谷歌search,但对于Solr 3.5来说,几乎没有文档或任何相关的信息。 大部分信息是1.4,不适用于3.5。

注:我在Tomcat和Solr都没有以前的经验。

我在RHEL 5.3上用Tomcat 7和solr3.5遇到了同样的问题。 我只是禁用了solrconfig文件中的查询响应写入器速度。 但是,如果你需要使用速度,我不这样做,看来你需要删除一些文件到lib文件夹。

 <queryResponseWriter name="velocity" class=solr.VelocityResponseWriter" enable=false/> 
  1. http://wiki.apache.org/solr/VelocityResponseWriter

这是Solr 3.5的一个已知问题,因为像Velocity这样的一些库已经被删除了,我假设你正在使用/ example / solr中的configuration,这就是为什么你有<lib dir="../../contrib/velocity/lib" />在configuration为以Jetty启动的solrconfig.xml中,在Tomcat下部署时,必须在$SOLR_HOME目录下复制所需的库并将solrconfig.xml更改为指向新位置,如果在$SOLR_HOME下直接创build一个名为lib的新目录, $SOLR_HOME所有的库都将被自动部署,因此您不需要在solrconfig.xml中定义任何<lib>标记

那么只需将“dist”下的所有库复制到新的lib文件夹中,如果需要其他function(如集群或其他插件),则需要从“contrib”

这里是关于这个问题的邮件列表讨论 。

我不知道你是否熟悉它,但编程速度的浏览GUI可能会非常方便,所以我build议你将速度库复制到lib文件夹中。

.jar文件可以在您下载的solr版本的/ dist /文件夹中find。 只要创build一个文件夹/ lib / / $ SOLR_HOME /,然后把文件放在那里,你应该没问题。

我遇到了与Solr 3.5相同的问题。 不明白为什么这个库不包含在.war中,但是这是它们的一些默认function。