向solr添加自定义请求处理程序时未找到类异常

时间:2011-11-01 12:35:13

标签: configuration solr classnotfoundexception requesthandler

我必须在solr中编写自己的自定义请求处理程序,但是我收到的错误如 org.apache.solr.common.SolrException:加载类'QPRequestHandler'时出错

这里 QPRequestHandler 是我想要插入SOLR 3.4的自定义处理程序

这是我到目前为止所做的:

  1. apache-solr-3.4.0 / example / solr /

  2. 中创建新目录 lib
  3. 在solrconfig.xml中(路径:apache-solr-3.4.0 / example / solr / conf / solrconfig.xml)我添加了这一行<lib dir="./lib" />

  4. 在solrconfig.xml中,我添加了我的自定义处理程序:

    <requestHandler name="/mytesthandler" class="QPRequestHandler">
    <!-- initialization args may optionally be defined here -->
     <lst name="defaults">
       <str name="d1">d1 value</str>
     </lst>
     <lst name="invariants">
       <str name="i1">i1 value</str>
     </lst>
    

  5. QPRequestHandler的示例代码是:

    public class QPRequestHandler extends RequestHandlerBase {
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    
    }
    
    @Override
    public void init(NamedList args) {
      // do nothing
    }
    
     @Override
     public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
         rsp.add("key1", "value1");
     }
    }
    
  6. 我制作了这个QPRequestHandler.java的JAR文件并将其放在 lib 目录中,路径:apache-solr-3.4.0/example/solr/lib/

  7. 6重新启动solr后:我收到类似org.apache.solr.common.SolrException: Error loading class 'QPRequestHandler'

    的错误

    问题可能是我正在创建java文件的jar文件而不是类文件,或者是否存在任何路径问题或配置错误。

1 个答案:

答案 0 :(得分:0)

您需要将类打包到jar文件中,该文件将由Solr加载 您可以通过使用solr依赖jar设置类路径来编译java文件。