【问题标题】:Class not found exception while adding custom request handler to solr向 solr 添加自定义请求处理程序时找不到类异常
【发布时间】:2011-12-19 11:22:21
【问题描述】:

我必须在 solr 中编写我自己的自定义请求处理程序,但我收到类似 org.apache.solr.common.SolrException: Error loading class 'QPRequestHandler'

之类的错误

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

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

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

  2. 中创建了新目录 lib
  3. 在 solrconfig.xml(path: 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/

6 重启 solr 后:出现org.apache.solr.common.SolrException: Error loading class 'QPRequestHandler' 之类的错误

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

【问题讨论】:

    标签: configuration solr classnotfoundexception requesthandler


    【解决方案1】:

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

    【讨论】:

    • 嘿,非常感谢您的帮助,您能否告诉我应该将哪些 solr 的 jar 文件添加到我的类路径中,以便我可以单独编译 requesthandler。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    相关资源
    最近更新 更多