我有一个自定义类扩展UpdateRequestProcessorFactory
当它被添加到索引时对文档做一些工作。在独立的Solr中,这在v4.10.3
中工作正常。我搬到SolrCloud v5.2
并添加收藏(节点)时,它抛出这个错误:Solr自定义UpdateRequestProcessorFactory失败,出现“错误实例化UpdateRequestProcessorFactory”
ERROR - 2015-06-14 12:25:11.071; [ docs_shard1_replica1] org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: Error CREATEing SolrCore 'docs_shard1_replica1': Unable to create core [docs_shard1_replica1] Caused by: class com.example.solr.update.processor.SelfTaggerUpdateProcessorFactory
at org.apache.solr.handler.admin.CoreAdminHandler.handleCreateAction(CoreAdminHandler.java:661)
at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestInternal(CoreAdminHandler.java:213)
at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:193)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
at org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:646)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:417)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.solr.common.SolrException: Unable to create core [docs_shard1_replica1]
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:651)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:611)
at org.apache.solr.handler.admin.CoreAdminHandler.handleCreateAction(CoreAdminHandler.java:628)
... 27 more
Caused by: org.apache.solr.common.SolrException: Error Instantiating UpdateRequestProcessorFactory, com.example.solr.update.processor.SelfTaggerUpdateProcessorFactory failed to instantiate org.apache.solr.update.processor.UpdateRequestProcessorFactory
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:815)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:658)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:637)
... 29 more
Caused by: org.apache.solr.common.SolrException: Error Instantiating UpdateRequestProcessorFactory, com.example.solr.update.processor.SelfTaggerUpdateProcessorFactory failed to instantiate org.apache.solr.update.processor.UpdateRequestProcessorFactory
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:587)
at org.apache.solr.core.SolrCore.createInitInstance(SolrCore.java:622)
at org.apache.solr.core.SolrCore.initPlugins(SolrCore.java:2281)
at org.apache.solr.update.processor.UpdateRequestProcessorChain.init(UpdateRequestProcessorChain.java:126)
at org.apache.solr.core.SolrCore.createInitInstance(SolrCore.java:624)
at org.apache.solr.core.SolrCore.initPlugins(SolrCore.java:2265)
at org.apache.solr.core.SolrCore.initPlugins(SolrCore.java:2259)
at org.apache.solr.core.SolrCore.loadUpdateProcessorChains(SolrCore.java:1069)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:766)
... 31 more
Caused by: java.lang.ClassCastException: class com.example.solr.update.processor.SelfTaggerUpdateProcessorFactory
at java.lang.Class.asSubclass(Class.java:3208)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:475)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:422)
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:566)
... 39 more
solrconfig.xml中我已经配置是这样的:
<updateRequestProcessorChain>
<processor class="com.example.solr.update.processor.SelfTaggerUpdateProcessorFactory" lib="custom-libs" version="1">
<arr name="source">
<str>title</str>
<str>desc</str>
<str>subject</str>
<str>content</str>
</arr>
<str name="dest">category</str>
</processor>
...
</updateRequestProcessorChain>
我试图加我的自定义罐子有两种方式:
- 将其添加到
server/lib/
文件夹中,所有Jetty
罐子都位于该文件夹中。这种失败Error Instantiating UpdateRequestProcessorFactory
- 将它添加到
.system
收集的建议,然后让它使用lib
和version
属性提供给<processor />
,从而未能与Caused by: java.lang.ClassNotFoundException: com.example.solr.update.processor.SelfTaggerUpdateProcessorFactory
这是否Error Instantiating UpdateRequestProcessorFactory
例外告诉一些我不你看吗?从独立到Solrcloud的转变是否需要我错过的自定义代码?
我尝试了你所说的,将场景简化为1节点云。我从节点的lib文件夹中删除了自定义jar文件,创建了.system集合,上传了自定义jar文件,我可以列出OK。我在我的solrconfig.xml中添加了“lib”和“version”属性。我重新启动Solrcloud,添加集合,现在错误是由:java.lang.ClassNotFoundException:com.example.solr.update.processor.SelfTaggerUpdateProcessorFactory – s1m3n
您是否使用了-Denable.runtime.lib = true? 另外,原始问题也可能表明接口与父节点不匹配(ClassCastException)。之间可能会有一些构造器更改。我会检查5.2中的源代码示例,并将它用作早期版本中的示例。 –
我想我找到了答案,与此http:// stackoverflow相关。com/a/8728829/1412531 – s1m3n