我正在尝试在 JBoss 5.1 上设置 Solr 3.5.0。一切都很好。我将war复制到deploy dir中,将dist和contrib目录中的所有依赖项复制到lib(或更早的deploy)目录中。
我可以启动服务器,一切正常,但是每当我想激活 DataImportHandler 以索引数据库中的数据时,都会出现错误。
基本上我所做的是我复制的是我从 example/example-DIH/solr/db 复制一个核心(或整个示例,没关系),我在 solr.xml 中注册核心,在启动时我收到一个错误:
15:17:10,707 SEVERE [RequestHandlers] org.apache.solr.common.SolrException: Error Instantiating Request Handler, org.apache.solr.handler.dataimport.DataImportHandler is not a org.apache.solr.request.SolrRequestHandler
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:427)
at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:461)
at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:157)
我很确定我的请求处理程序定义是正确的,但只是为了确定:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">dataimport.xml</str>
</lst>
据我所知,这个错误可能是由 DataImportHandler 和 SolrRequestHandler 被认为是持有不同的类加载器引起的。
每当我从示例中的 start.jar 应用程序启动 Solr 时(我认为它启动了一个 Jetty 服务器),它都可以正常工作。
我的问题是:这真的是因为类加载器问题还是其他原因?而且,更重要的是:我该如何解决?