NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
Я пытаюсь запустить пример примерных фрагментов, указанный здесь.
Ниже мой POM.xml:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-api</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.2</version>
</dependency>
Когда я пытаюсь запустить пример, выдается следующая ошибка:
Sep 17, 2010 11:59:43 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.apache.tiles.web.startup.TilesListener
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
at org.apache.tiles.web.startup.TilesListener.<init>(TilesListener.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
Любая идея?
Я потратил 30 минут на поиски в Интернете, но не смог найти возможного разрешения.
Пожалуйста, помогите мне...
Ответы
Ответ 1
Вы включили зависимость от API SLF4J, которую вы используете в своем приложении для ведения журнала, но вы также должны включить реализацию, которая выполняет реальную работу по протоколированию.
Например, для входа в Log4J вы должны добавить эту зависимость:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.2</version>
</dependency>
Рекомендуемая реализация будет logback-classic, которая является преемником Log4j, сделанной теми же парнями, которые сделали SLF4J и Log4J:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.24</version>
</dependency>
Примечание. Версии могут быть неверными.
Ответ 2
Вы включили зависимость для sflj api, но не зависимость для реализации api, то есть отдельную банку, вы можете попробовать slf4j-simple-1.6.1.jar.
Ответ 3
Добавьте все плитки для плитки, такие как (tiles-jsp, tiles-servlet, tiles-template, tiles-extras.tiles-core) в вашу папку lib сервера и ваш путь сборки приложения, тогда он работает, если вы используете хвосты apache с spring приложение mvc
Ответ 4
Скопируйте все записи заказа домашнего файла .iml в файл /src/main/main.iml.
Это решит проблему.