NullPointerException при запуске SOLR 4.3.1 в LibertyProfile 8.5.5

Я пытаюсь запустить SOLR 4.3.1 в профиле Websphere Liberty 8.5.5. Я поместил solr.war в папку dropins и добавил файлы журналов (log4j-1.2.16.jar, slf4j-api-1.6.6.jar, slf4j-log4j12-1.6.6.jar) в качестве глобальных библиотек. При запуске solr возникает следующее исключение:

java.lang.NullPointerException: 
at com.ibm.websphere.ras.TruncatableThrowable.getStackTrace(TruncatableThrowable.java:247)
at [internal classes]
at com.ibm.ws.logging.internal.impl.BaseTraceFormatter.formatMessage(BaseTraceFormatter.java:234)
at com.ibm.ws.logging.internal.impl.BaseTraceFormatter.formatMessage(BaseTraceFormatter.java:191)
at com.ibm.ws.logging.internal.impl.BaseTraceService.publishLogRecord(BaseTraceService.java:447)
at com.ibm.ws.logging.internal.impl.LoggerHandlerManager$BaseTrLoggerHandler.publish(LoggerHandlerManager.java:69)
at java.util.logging.Logger.log(Unknown Source)
at com.ibm.ws.logging.internal.WsLogger.log(WsLogger.java:158)
at com.ibm.ws.logging.internal.WsLogger.logp(WsLogger.java:354)
at com.ibm.ws.webcontainer.webapp.WebApp.logMessage(WebApp.java:2981)
at [internal classes]
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:165)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194)
at [internal classes]

Кто-нибудь успешно использует SOLR в Websphere Liberty?


person user2582818    schedule 15.07.2013    source источник


Ответы (3)


Похоже, что-то пытается зарегистрировать сообщение с параметром типа Throwable, но этот объект Throwable переопределил getStackTrace() для возврата null. Было бы полезно увидеть содержимое messages.log - это должно показать необработанный журнал, в том числе, какой класс имеет параметр Throwable.

В качестве обходного пути отключение ведения журнала консоли должно предотвратить проблему:

<logging consoleLogLevel="OFF"/>

Полные журналы по-прежнему будут доступны в файле messages.log. После того, как вы предотвратите эту трассировку стека из Liberty, вам нужно будет использовать файл messages.log, чтобы определить, какое исключение генерируется из Solr, и выяснить, как исправить эту основную причину.

person Holly Cummins    schedule 17.07.2013

Я успешно запускаю solr на Liberty (версия до 8.5.5):

а) Я извлек военный файл в каталог приложений, а не помещал его в дропины, например. serverDir/apps/solr.war

б) я определил приложение в server.xml:

<application id="solr" location="solr.war" />

c) Я включил функции jsp и jndi:

<featureManager>
    <feature>jsp-2.2</feature>
    <feature>jndi-1.0</feature>
</featureManager>

г) Я ничего не делал для добавления банок slf4j, насколько я помню. Я определенно не создавал и не определял никаких глобальных библиотек. Мой WEB-INF/lib содержит:

./WEB-INF/lib/slf4j-jdk14-1.6.1.jar
./WEB-INF/lib/jcl-over-slf4j-1.6.1.jar
./WEB-INF/lib/log4j-over-slf4j-1.6.1.jar
./WEB-INF/lib/slf4j-api-1.6.1.jar

Я возился с фильтрами и прочим, и он работает без проблем. Как сказала Холли, здесь есть основная причина, которую вам придется раскрыть, и ее обходной путь позволит вам это сделать.

person ebullient    schedule 07.08.2013

Я только что запустил SOLR 4.9.0 в Liberty. Некоторые шаги, которые мне пришлось сделать: 1. извлечь solr.war из \example\webapps в каталог приложений сервера Liberty как solr.war 2. изменить server.xml

<application id="solr" location="solr.war" />

<featureManager>
    <feature>jsp-2.2</feature>
    <feature>jndi-1.0</feature>
</featureManager>
  1. загружен http://www.slf4j.org/dist/slf4j-1.6.6.zip в соответствии с инструкциями по отключению ведения журнала на странице https://wiki.apache.org/solr/SolrLogging скопировал следующий .jar в каталог web-inf

    ./WEB-INF/lib/slf4j-jdk14-1.6.1.jar ./WEB-INF/lib/jcl-over-slf4j-1.6.1.jar ./WEB-INF/lib/log4j-over-slf4j- 1.6.1.jar ./WEB-INF/lib/slf4j-api-1.6.1.jar

  2. изменил порт по умолчанию с 9080 на 8983, чтобы упростить использование примеров загрузки

Я также использую Java 8 и использую eclipse для управления своим профилем Liberty.

person Edward Carmody    schedule 14.07.2014