1

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

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

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

  1. apache-solr-3.4.0/example/solr/中创建了新目录lib

  2. 在 solrconfig.xml(path: apache-solr-3.4.0/example/solr/conf/solrconfig.xml) 我添加了这一行<lib dir="./lib" />

  3. 在 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>
    

  4. 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");
     }
    }
    
  5. 我为此制作了一个 JAR 文件QPRequestHandler.java并将其放在lib目录中,路径:apache-solr-3.4.0/example/solr/lib/

6 重启 solr 后:我收到类似的错误org.apache.solr.common.SolrException: Error loading class 'QPRequestHandler'

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

4

1 回答 1

0

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

于 2011-11-01T13:51:05.830 回答