0

在 Solr 4.2.1 上,我能够使用 solr post,现在我已经升级到 5.4,并且当我使用 post 方法时。我收到错误加载类“solr.XsltUpdateRequestHandler”错误。

这是完整的错误:

null:org.apache.solr.common.SolrException: Error loading class 'solr.XsltUpdateRequestHandler'
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:559)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:490)

Caused by: java.lang.ClassNotFoundException: solr.XsltUpdateRequestHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

我在 solrconfig 上使用了以下内容,并且在 solr 启动期间没有错误。

<requestHandler name="/update/xslt" class="solr.XsltUpdateRequestHandler" startup="lazy" />

任何帮助深表感谢。

谢谢

4

2 回答 2

0

感谢@TMBT 的回复。我能够通过使用它 UpdateRequestHandler 找到解决方案,因为 XsltUpdateRequestHandler 已被弃用。将其更改为 solr.UpdateRequestHandler 后,我能够运行 solr POST 并且成功。

<requestHandler name="/update/xslt" class="solr.UpdateRequestHandler" startup="lazy" />
于 2016-02-11T23:01:28.190 回答
0

看起来该处理程序在 4.8 甚至可能更早被弃用。如果它在 5.0 之前完全从 Solr 中删除,我不会感到惊讶,但我在文档中没有看到任何关于它的内容。我提取了 4.2.1 文档,甚至那些有弃用的注释

您可能希望最迟尝试降级到 4.10 以查看是否可以使用该处理程序,然后开始一次升级一个版本,直到再次发生错误。从 4.2.1 跳到 5.4.1 是巨大的。这些版本之间有很多变化。

如果您不想打扰,我在我的 5.4.1 中进行了快速搜索solrconfig.xml,发现以下内容:

<!-- XSLT response writer transforms the XML output by any xslt file found
       in Solr's conf/xslt directory.  Changes to xslt files are checked for
       every xsltCacheLifetimeSeconds.  
    -->
  <queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
    <int name="xsltCacheLifetimeSeconds">5</int>
  </queryResponseWriter>

我不知道如何使用它,因为我从来没有理由打扰 xslt,但它看起来是一个不错的起点。

于 2016-02-11T17:08:47.023 回答