Я пытаюсь реализовать пользовательский 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