Исключение SOLR 7.4.0: java.lang.NoClassDefFoundError: org / apache / solr / handler / dataimport / FieldStreamDataSource - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь реализовать пользовательский SOLR FieldStreamDataSource. Это код моего класса Java:

package MySOLR;

import org.apache.solr.handler.dataimport.*;

public class MyFieldStreamDataSource extends FieldStreamDataSource {

}

Мой SOLR установлен в C: \ solr \ solr-7.4.0. Поэтому я добавил следующий jar в свой проект NetBeans

C:\solr\solr-7.4.0\dist\solr-dataimporthandler-7.4.0.jar

и скомпилировал его в MySOLR.jar

Затем я поместил MySOLR.jar в C:\solr\solr-7.4.0\server\lib\ext и добавил следующее в мой конфигурационный файл SOLR DIH:

...
<dataSource name="fieldStreamDataSource" type="MySOLR.MyFieldStreamDataSource" />
...
<entity name="tika_RTF_NOTES" onError="continue" processor="TikaEntityProcessor" dataField="ts0_tika.RTF_NOTES" dataSource="fieldStreamDataSource">
    <field name="text" column="text" />
</entity>
...

Я добавил следующие записи в файл solrconfig.xml моего ядра SOLR:

<lib dir="C:/solr/solr-7.4.0/contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="C:/solr/solr-7.4.0/dist/" regex="solr-dataimporthandler-\d.*\.jar" />
<!--lib path="C:/solr/solr-7.4.0/dist/solr-dataimporthandler-7.4.0.jar" /-->
<lib dir="C:/solr/solr-7.4.0/contrib/dataimporthandler-extras/lib" regex=".*\.jar" />
<lib dir="C:/solr/solr-7.4.0/dist/" regex="solr-dataimporthandler-extras-\d.*\.jar" />

После перезапуска моего экземпляра SOLR (службы Windows) я пытаюсь запустить DIH через веб-интерфейс SOLR. Я получаю следующее исключение в файле solr.log (и в веб-интерфейсе):

2019-03-18 11:08:12.164 ERROR (qtp1986417638-24) [   x:iET] o.a.s.s.HttpSolrCall null:java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/solr/handler/dataimport/FieldStreamDataSource
        at org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:662)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:530)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:377)
        at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:323)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
        ...

Я почти уверен, что мои записи в solrconfig.xml верны, так как, когда я удаляю записи, я вижу, что SOLR собирает меньше библиотек. Я вижу это в файле solr.log при просмотре

o.a.s.c.SolrResourceLoader [...] Добавлены ... библиотеки в загрузчик классов из путей: ...

Чего мне не хватает?

Большое спасибо заранее, Michael

1 Ответ

0 голосов
/ 19 марта 2019

Случайно я нашел решение. Есть 2 варианта (для меня):

  1. Поместите MySOLR.jar в c: \ solr \ solr-7.4.0 \ contrib \ dataimporthandler \ lib
  2. Поместите MySOLR.jar в c: \ solr \ solr-7.4.0 \ dist и добавьте ссылку на него в solrconfig.xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...