2015-03-21 2 views
2

Я пытаюсь использовать SLF4J регистратор в моем OSGi расслоения для Apache Sling.OSGi SLF4J каротаж в Apache Sling/Феликсом

При добавлении тега зависимости и импорта в POM.xml пакет остается в состоянии.

Я что-то не хватает?

Activator.class

import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 

    public class Activator implements BundleActivator { 
    ... 
    private final Logger log = LoggerFactory.getLogger(SampleServiceImpl.class); 
    ... 

pom.xml

<Import-Package>org.slf4j</Import-Package> 
... 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.6</version> 
      <scope>provided</scope> 
     </dependency> 

Apache Sling Web Console/Bundle View

EDIT Если я закомментируйте Logge r и удалить импорт из Activator.class, служба остается в разрешенном состоянии. Как только я удаляю строки относительно slf4 в POM, все работает.

+0

Было бы полезно получить образец проекта где-нибудь, возможно, на Github. Кроме того, где вы развертываете это - Sling Launchpad, пользовательскую панель запуска или что-то еще? –

+0

Я предполагаю, что с моей стороны было непонимание. Возникла проблема с оператором пакета импорта. Проблема не была вызвана slf4j. – Reymanx

ответ

1

Я полагаю, что ваш оператор <Import-Package>org.slf4j</Import-Package> предотвращает импорт других обязательных пакетов. Значение этого элемента должно быть org.slfj4.*,* так, чтобы генерировались все «автоматические» импорт. См. maven-bundle-plugin docs для получения дополнительной информации.

Но если ваш pom похож на пучок Sling, такой как slingbucks sample, вам все равно не нужны такие явные инструкции импорта.

1

Возможно, у вас есть исключение в методе запуска вашего активатора. Добавьте попытку catch и просто удалите исключение в System.out, чтобы узнать, что происходит. Вы также установили некоторый пакет, который обрабатывает ведение журнала slf4j, например, pax-logging?

+0

Спасибо за ваш комментарий! Очень сложно получить ответы, как только вопрос будет помечен как «apache sling». Я пробовал это также без успеха. Если я комментирую экземпляр Logger и удаляю импорт из Activator.class, служба остается в разрешенном состоянии. Как только я удаляю строки относительно slf4 в POM, все работает. // Добавлено это на мой вопрос. ** Редактирование ** У меня есть sling.commons.logservice + sling.commons.log. – Reymanx

Смежные вопросы