Не удалось создать экземпляр прослушивателя org.apache.solr.handler.dataimport.scheduler.ApplicationListener

Я пытаюсь настроить dataimportscheduler для своего индекса, когда добавляю:

  <listener>
    <listener-class>
      org.apache.solr.handler.dataimport.scheduler.ApplicationListener
    </listener-class>
  </listener>

в мой webdefault.xml и запустить start.jar, я получаю:

2012-06-30 11:04:52.959:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
2012-06-30 11:04:53.457:INFO::jetty-6.1-SNAPSHOT
2012-06-30 11:04:53.953:WARN::Could not instantiate listener org.apache.solr.handler.dataimport.scheduler.ApplicationListener
java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.scheduler.ApplicationListener
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
        at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401)
        at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
        at org.mortbay.jetty.handler.ContextHandler.loadClass(ContextHandler.java:1102)
        at org.mortbay.jetty.webapp.WebXmlConfiguration.initListener(WebXmlConfiguration.java:630)
        at org.mortbay.jetty.webapp.WebXmlConfiguration.initWebXmlElement(WebXmlConfiguration.java:368)
        at org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:289)
        at org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222)
        at org.mortbay.jetty.webapp.WebXmlConfiguration.configureDefaults(WebXmlConfiguration.java:162)
        at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1262)
        at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
        at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
        at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
        at org.mortbay.jetty.Server.doStart(Server.java:224)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.mortbay.start.Main.invokeMain(Main.java:194)
        at org.mortbay.start.Main.start(Main.java:534)
        at org.mortbay.start.Main.start(Main.java:441)
        at org.mortbay.start.Main.main(Main.java:119)

Я добавил:

<lib dir="../../dist/" regex="apache-solr-dataimportscheduler-1.0.jar" />

в solrconfig.xml (таким образом успешно загрузили некоторые другие библиотеки), но это ничего не меняет, исходя из времени, показанного в сообщении об ошибке и файлах журнала, кажется, что webdefault.xml загружается перед solrconfig.xml.

Я загрузил apache-solr-dataimportscheduler-1.0.jar с параметром -cp для java в командной строке, но это не сработало.

Есть идеи, что мне делать?


person Sassan    schedule 30.06.2012    source источник


Ответы (1)


Я отвечал на аналогичный вопрос несколько дней назад. Пожалуйста, проверьте это. Конфигурация Solr DataImportHandler

Если это не поможет, другой вариант — скопировать этот jar-файл в папку web-inf\lib файла solr.war. Это можно сделать во взорванной папке причала в веб-приложениях...

person user1452132    schedule 30.06.2012
comment
К сожалению, ваш ответ на этот вопрос не помогает в моем случае, как я уже упоминал выше, я уже успешно загружал библиотеки (например, mysql-connector-java), поэтому это не должно быть связано с расположением файла jar. Основываясь на отметках времени в файлах журнала и сообщениях об ошибках, очевидно, что webdefault.xml загружается раньше, чем solrconfig.xml, поэтому загрузка библиотек в solrconfig.xml не помогает, я проверю web-inf/lib и сообщу вам, работает ли он. . - person Sassan; 30.06.2012
comment
@Sassan Спасибо, что указали на это. Я изменил вики-страницу, чтобы она содержала всю необходимую информацию для развертывания DIHScheduler. - person Marko Bonaci; 01.07.2012
comment
Добро пожаловать, есть еще одна проблема с конфигурацией графика импорта данных, решение которой я не смог найти в документации, вот как можно настроить график импорта данных, чтобы он аутентифицировал себя для HTTP-вызовов, я задал для него вопрос здесь, было бы здорово, если бы вы сообщили мне, есть ли решение. - person Sassan; 01.07.2012
comment
Он не включен, поскольку Solr обычно развертывается внутри, то есть он не отображается за пределами вашей интрасети. Это связано с тем, что он редко используется конечными пользователями напрямую, обычно есть какое-то приложение, которое использует Solr в качестве службы поиска и представляет собой интерфейс между конечным пользователем и Solr. - person Marko Bonaci; 01.07.2012