ClassCastException - org.slf4j.impl.JDK14LoggerFactory не может быть приведен к ch.qos.logback.classic.LoggerContext - PullRequest
0 голосов
/ 28 апреля 2019

Получение вышеупомянутого исключения, когда я пытаюсь это:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;

private static final Logger LOGGER = LoggerFactory.getLogger( ABC.class.getName() );
public String greet() {
    LOGGER.info("START1:: [ {} ] , [ {} ] , {}", ABC.class.getName(),"greet",123);
    LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();

проверил мои maven зависимости - вот что у меня есть:

<dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
        <scope>compile</scope>
    </dependency>

Не уверен, что я делаю не так. Окружение - это файл войны, развернутый в WebLogic 10.2.3 и JRE 1.7

EDIT: Когда я ищу JDK14LoggerFactory, я не могу найти этот класс ни в одном из JAR-файлов на classpath (в веб-приложении)

Update1: Поиск того, в каком jar-файле содержится файл - JDK14LoggerFactory: в weblogic обнаружено следующее:

\ ORACLE_HOME \ wlserver \ Modules \ функции \ weblogic.server.merged.jar \ ORACLE_HOME \ wlserver \ Modules \ org.slf4j.jdk14_1.0.0.0_1-6-1.jar

UPDATE2: Поиск в каком jar-файле - LoggerFactory: в weblogic найдено следующее:

\Oracle_Home\oracle_common\modules\oracle.dms_12.1.3\dms.jar
\Oracle_Home\oracle_common\modules\oracle.dms_12.1.3\dms.jar
\Oracle_Home\oracle_common\modules\oracle.odl_12.1.3\ojdl2.jar
\Oracle_Home\oracle_common\modules\oracle.odl_12.1.3\ojdl2.jar
\Oracle_Home\wlserver\modules\clients\com.oracle.webservices.wls.jaxws- 
 wlswss-client.jar
 \Oracle_Home\wlserver\modules\com.bea.core.apache.log4j_1.3.0.0_1-2-15.jar
 \Oracle_Home\wlserver\modules\features\weblogic.server.merged.jar
 \Oracle_Home\wlserver\modules\features\weblogic.server.merged.jar
 \Oracle_Home\wlserver\modules\hibernate.validator_1.0.0.0_4-1-0.jar
 \Oracle_Home\wlserver\modules\org.jboss.weld.core_2.0.0.0_1-1-18.Final.jar
 \Oracle_Home\wlserver\modules\org.slf4j.api_1.0.0.0_1-6-1.jar
 \Oracle_Home\wlserver\server\lib\consoleapp\APP-INF\lib\log4j-1.2.8.jar

Похоже, что это проблема - теперь мне нужно подавить загрузку классов из указанных выше мест и принудительно загрузить их из папки WEB-INF \ lib. Выложу это как отдельный вопрос

...