在Solr 4.2.1上,我能够使用solr帖子,现在我已升级到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" />
非常感谢任何帮助。
谢谢
答案 0 :(得分:0)
看起来这个处理程序在4.8中被弃用了,甚至可能还早于此。如果它完全被5.0从Solr中删除,我不会感到惊讶,但我在文档中没有看到任何关于它的内容。 I pulled up the 4.2.1 docs and even those have the deprecated annotation
您可能希望最迟尝试降级到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,但它看起来像是一个好的起点。
答案 1 :(得分:0)
感谢@TMBT的回复。我可以使用UpdateRequestHandler找到解决方案,因为不推荐使用XsltUpdateRequestHandler。将它更改为solr.UpdateRequestHandler后,我能够运行solr POST并且成功了。
<requestHandler name="/update/xslt" class="solr.UpdateRequestHandler" startup="lazy" />