Solr не запускается в молу при установке CKAN - PullRequest
0 голосов
/ 02 мая 2018

Когда меня попросили установить CKAN, я следую документированной процедуре . В этой процедуре Ubuntu упоминается как ОС, но, поскольку я нахожусь на Debian 9, я все равно решил пойти дальше.

Мне удалось установить и настроить практически все, вплоть до solr (3.6.2), на jetty (9.2.21) (пакет «solr-jetty», jetty может начать автономно связываться со своим собственным сокетом, так как тест страницы корневого приложения можно увидеть), но NPE выбрасывается и прослеживается в журналах, когда я начинаю причал.

При установке создается файл /etc/jetty9/contexts/solr.xml со следующим содержимым:

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/solr</Set>
  <Set name="war">/usr/share/solr/web</Set>

  <!-- Set the solr.solr.home system property -->
  <Call name="setProperty" class="java.lang.System">
    <Arg type="String">solr.solr.home</Arg>
    <Arg type="String">/usr/share/solr</Arg>
  </Call>

  <!-- Enable symlinks -->
  <Call name="addAliasCheck">
    <Arg>
      <New class="org.eclipse.jetty.server.handler.ContextHandler$ApproveSameSuffixAliases"/>
    </Arg>
  </Call>
</Configure>

на которые я ссылаюсь из файла /etc/jetty9/jetty.conf

jetty-logging.xml
contexts/solr.xml
jetty-started.xml

Файл конфигурации для веб-приложения solr, похоже, правильно выбран. Кроме того, свойство solr.solr.home похоже отображается в правильный каталог. Однако при запуске Jetty следующее содержимое записывается в / var / log / jetty9 /:

2018-05-02 11:51:00.827:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@5afa04c{/,file:/var/lib/jetty9/webapps/root/,AVAILABLE}{/root}
2018-05-02 11:51:00.853:INFO:oejs.ServerConnector:main: Started ServerConnector@41b12eec{HTTP/1.1}{127.0.0.1:8983}
2018-05-02 11:51:00.853:INFO:oejs.Server:main: Started @831ms
2018-05-02 11:51:00.853:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@40ef3420{/solr,null,null}{/usr/share/solr/web}
java.lang.NullPointerException
        at org.eclipse.jetty.webapp.Configuration$ClassList.serverDefault(Configuration.java:131)
        at org.eclipse.jetty.webapp.WebAppContext.loadConfigurations(WebAppContext.java:932)
        at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:435)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:504)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1255)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1174)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:321)
        at org.eclipse.jetty.start.Main.start(Main.java:817)
        at org.eclipse.jetty.start.Main.main(Main.java:112)

Я просто не могу понять, что вызывает NPE.

1 Ответ

0 голосов
/ 02 мая 2018

contexts/solr.xml не должно быть в вашем jetty.conf

Этот XML-файл должен быть взят из WebAppProvider, который сканирует настроенное местоположение каталога Jetty, что является частью DeploymentManager концепций в Jetty.

Как вы сейчас настроили, у вас есть сервер с корневым контекстом (развернут из /var/lib/jetty9/webapps/root/) и отдельный объект, который создает несвязанный WebAppContext, который не присоединен к HandlerCollection, или Context, или даже Server.

Найдите каталог monitoredDirName, на который ссылается WebAppProvider, и убедитесь, что ваш solr.xml присутствует в этом каталоге.

Совет: найдите start.ini (файл) или start.d/*.ini (dir + files) для фактической используемой конфигурации причала. monitoredDirName может быть объявлено в одном из этих файлов в вашей системе.

Наконец, Jetty 9.2.x - это EOL (End of Life) , рассмотрите возможность обновления.

...