У меня возникла любопытная проблема. У меня было это Java-приложение, которое ранее было развернуто в Tomcat и с радостью использовало классический логбэк в качестве реализации slf4j. Теперь, когда мы пытались развернуть то же приложение на сервере jboss 7.1.final, оно даже не развертывает приложение, которое занимается
java.lang.ClassCastException: org.slf4j.impl.Slf4jLoggerFactory нельзя преобразовать в ch.qos.logback.classic.LoggerContext
Это оскорбительная строка кода
final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
. Класс, в который встроено его, является Spring, и он дает сбой - следовательно, все приложение не может быть развернуто. У кого-нибудь есть решение? Заранее спасибо
Посмотрев на этот сайт и на другие форумы, я понял, что Jboss 7 поставляется в комплекте с собственной реализацией slf4j и реализует тот же интерфейс ILoggerFactory, что и LoggerContext в logback.Наше приложение пыталось получить экземпляр того же самого, но сервер приложений навязывает собственную реализацию slf4j.
Я попытался изменить файл module.xml в jboss \ modules \ org \ slf4j \ impl \ main и указал его на jar-файлы с логбэком.
<resources>
<resource-root path="logback-classic-0.9.28.jar"/>
<resource-root path="logback-core-0.9.28.jar"/>
</resources>
Теперь, когда я запускаю приложение, я получаю серьезную ошибку.
Исключение, запускающий фильтр WicketFilter: java.lang.ClassCastException: ch.qos.logback.classic.LoggerContext не может быть преобразован в ch.qos.logback.classic. LoggerContext
Я в своем уме. Любые специалисты по jboss и logback могут помочь? Заранее благодарим