Назад | Перейти на главную страницу

Как исправить отсутствующие в Tomcat файлы журналов SLF4j?

Я получаю эту ошибку при попытке запустить новое приложение с помощью Tomcat:

Could not find necessary SLF4j logging jars. If using Jetty, the SLF4j logging jars need to go in the jetty lib/ext directory. For other containers, the corresponding directory should be used. For more information, see: http://wiki.apache.org/solr/SolrLogging

Я не использую Jetty, я использую Tomcat, поэтому мои инструкции по установке немного отличаются.

Я проверил ссылку и много читал об этом - похоже, библиотеки должны быть в $ CATALINA_BASE / lib, что в моем случае должно быть:

/usr/local/easy/share/easy-tomcat7/lib

Однако я поместил туда библиотеки - никаких кубиков.

Это каталог lib:

./                        commons-io-2.3.jar        jsp-api.jar                 slf4j-api-1.7.6.jar      tomcat-juli-adapters.jar
../                       el-api.jar                jul-to-slf4j-1.7.7.jar      slf4j-api-1.7.7.jar      tomcat-juli.jar
annotations-api.jar       httpclient-4.3.1.jar      log4j.jar@                  slf4j-log4j12-1.7.7.jar  tomcat-util.jar
catalina-ant.jar          httpcore-4.3.jar          log4j-over-slf4j-1.7.7.jar  tomcat-api.jar           wstx-asl-3.2.7.jar
catalina-ha.jar           httpmime-4.3.1.jar        log4j.properties            tomcat-coyote.jar        zookeeper-3.4.6.jar
catalina.jar              jasper-el.jar             log4j.properties.bak        tomcat-i18n-es.jar
catalina-tribes.jar       jasper.jar                noggit-0.5.jar              tomcat-i18n-fr.jar
commons-collections.jar@  jasper-jdt.jar@           servlet-api.jar             tomcat-i18n-ja.jar
commons-dbcp.jar@         jcl-over-slf4j-1.7.7.jar  slf4j-1.7.7/                tomcat-jdbc.jar

Как видите, все библиотеки должны быть там.

Так что вызывает это? Я нахожусь не в том каталоге Tomcat? Я не взял нужные файлы? Есть ли какой-то параметр конфигурации, который мне не хватает? Я здесь совершенно потерялся.

Не рекомендуется иметь в пути к классам две версии библиотеки api slf4j. У вас есть slf4j-api-1.7.6.jar, а также slf4j-api-1.7.7.jar.

Кроме того, у вас должна быть соответствующая библиотека реализации slf4j в вашем пути к классам.

Обратитесь к документация slf4j чтобы получить более подробную информацию о том, как включить slf4j в ваше приложение.

Чтобы ваш Solr с Tomcat работал правильно, вам необходимо:

  1. Скопируйте журнальные банки SLF4j из <solr>/example/lib/ext/*.jar в Tomcat Lib (например, TOMCAT_HOME/lib, /usr/share/tomcat/lib) или каталог Webapp Lib (например, TOMCAT_HOME/webapps/solr/WEB-INF/lib). Эти jar-файлы будут устанавливать SLF4J и log4j.

    Для сервера Debian или Ubuntu, использующего пакет Tomcat, доступный от поставщика ОС, это, вероятно, будет /usr/share/tomcat6/lib или /usr/share/tomcat7/lib.

    Например:

    # cp -v /opt/solr-4.10.4/example/lib/ext/*.jar /usr/share/tomcat?/lib/
    

    или:

    # cp -v /opt/solr-4.10.4/example/lib/ext/*.jar /var/lib/tomcat7/webapps/solr/WEB-INF/lib/
    

    В качестве альтернативы настройте свой CLASSPATH чтобы указать на ваши файлы jar.

  2. Скопируйте конфигурацию журнала из solr/example/resources/log4j.properties в место на пути к классам. Обычно вы можете использовать то же расположение, что и файлы jar выше, и отредактировать файл конфигурации для предпочтительного места назначения журнала.

    По желанию, если вы не разместили log4j.properties в пути к классам установите параметр java: -Dlog4j.configuration=file:///path/to/log4j.properties

  3. Перезапустите Tomcat (например, sudo /etc/init.d/tomcat7 restart).

Если у вас все еще есть проблемы, может помочь запустить сервер с -Dlog4j.debug=true чтобы увидеть больше деталей.

Видеть: Используя пример настройки ведения журнала в контейнерах, отличных от Jetty