2015-02-06 5 views
0

Я следовал этому учебник - http://www.slideshare.net/searchbox-com/develop-a-solr-request-handler-plugin и построил нужный файл банки в Netbeans затем положить его в Lib пути и добавил обработчик запросов к solrconfig.xml:Solr пользовательского RequestHandler ClassNotFoundException

<requestHandler name="/newendpoint" class="com.searchbox.DemoPlugin"> 
      <lst name="words"> 
        <str name="word">body</str> 
        <str name="word">fish</str> 
        <str name="word">dog</str> 
      </lst> 
    </requestHandler> 

Я вижу банку загружаемой:

INFO - 2015-02-06 12:32:21.903; org.apache.solr.core.SolrResourceLoader; Adding 'file:/data/solr/lib/DemoPlugin-1.0.jar' to classloader 

Но тогда я получаю сообщение об ошибке при попытке перезапустить Solr:

ERROR - 2015-02-06 12:39:02.942; org.apache.solr.core.CoreContainer; Error creating core [test]: RequestHandler init failure 
org.apache.solr.common.SolrException: RequestHandler init failure 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:873) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:646) 
     at org.apache.solr.core.CoreContainer.create(CoreContainer.java:491) 
     at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:255) 
     at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:249) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.solr.common.SolrException: RequestHandler init failure 
     at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:172) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:792) 
     ... 8 more 
Caused by: org.apache.solr.common.SolrException: Error loading class 'com.searchbox.DemoPlugin' 
     at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:490) 
     at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:421) 
     at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:543) 
     at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:616) 
     at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:158) 
     ... 9 more 
Caused by: java.lang.ClassNotFoundException: com.searchbox.DemoPlugin 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
     at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:274) 
     at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:474) 
     ... 13 more 

Я признаюсь, что я не эксперт по java, поэтому я задаюсь вопросом, не пропустил ли я что-то очевидное, или механики изменились с момента создания учебника, расширяя баннер DemoPlugin, он имеет необходимый файл com/searchbox/DemoPlugin.class, поэтому Я немного потерял.

Любые указатели оценили.

Si

ответ

1

Я попробовал этот урок, и я могу подтвердить, что это работает, как описано.

Для вас я могу только предположить, что кувшин не загружен там, где он должен (даже если лог sais получает загрузчик классов).

Я поставил банку в {solr.home}/{core.name}/lib.

Немного больше информации о том, как развернуть новые плагины в солнечной системе, - here.

Попробуйте использовать файл solr.xml и настройте там, где должен быть загружен плагин.

+0

Спасибо, не уверены, были ли это разрешения или местоположения, но поместили его в папку lib для рассматриваемого ядра и теперь отлично работают. – Simon

Смежные вопросы