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

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

我已经设置了一个 Apache Tomcat 6 服务器,并按照此处的说明安装了 Apache Solr 3.5.0http://pabloseminario.com/2011/02/22/installing-solr-on-debian-6-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)

我的装置目前向公众开放,以供测试:

http://62.75.247.116:8080/solr/

我在 Debian 6 机器上运行它。

我进行了一些谷歌搜索,但对于 Solr 3.5,几乎没有任何与此相关的文档或内容;大多数信息适用于 1.4,并不适用于 3.5。

注意:我以前没有使用过 Tomcat 和 Solr。

答案1

我在装有 Tomcat 7 和 solr 3.5 的 RHEL 5.3 上遇到了同样的问题。我刚刚在 solrconfig 文件中禁用了查询响应写入器 velocity。但如果您需要使用 velocity(而我不需要),似乎您需要将一些文件放入 lib 文件夹中。

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

答案2

我不知道您是否熟悉它,但使用 velocity 编程的 /browse GUI 非常方便,所以我建议您将 velocity 库复制到 lib 文件夹。

.jar 文件可以在您下载的 solr 版本的 /dist/ 文件夹中找到。只需创建一个文件夹 /lib/ /$SOLR_HOME/,然后将文件放在那里就可以了。

我在使用 Solr 3.5 时遇到了同样的问题。不明白为什么这个库没有包含在 .war 中,尽管这是它们的一些默认功能。

答案3

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

然后只需将“dist”下的所有库复制到新的 lib 文件夹,如果您需要额外的功能(如集群或其他插件),请从“contrib”复制所需的库

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

相关内容