我必须在solr中编写自己的自定义请求处理程序,但我得到的错误如org.apache.solr.common.SolrException:错误加载类'QPRequestHandler'
这里QPRequestHandler是我的自定义处理程序,我想插入我的SOLR 3.4
到目前为止我所做的是:
-
在apache-solr-3.4.0/example/solr/
中创建新目录lib 在solrconfig.xml(路径:apache-solr-3.4.0/example/solr/conf/solrconfig.xml)中我添加了这一行
<lib dir="./lib" />
在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>
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"); } }
我把这个
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文件,而不是类文件,或者有任何路径问题或配置错误。
需要将类打包到jar文件中,该文件将由Solr加载。
您可以通过使用solr依赖的jar设置类路径来编译java文件。