Wie man dieses Problem lösen slf4j Ausnahme , log-Methode nicht gefunden
Ich bin immer folgende SLF4J Ausnahme, ich Habe Versucht, das Entfernen von slf4j Abhängigkeiten von pom.xml noch es zu bestehen , kann jemand helfen????
Die Ausnahme, die Ausgelöst wird, als :
.
.
.
" org.osgi.framework.BundleException: Exception in oracle.acs.assessment.PatchDataExtractionActivator.start() of bundle oracle.acs.mf.PatchDataExtractionBundle. at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:1018) > at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) > at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) > at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260) > at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:252) > at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:260) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:150) > at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:291) > at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(FrameworkConsole.java:276) > at com.sun.svc.container.admin.cli.Console.run(Console.java:85) > at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.NoSuchMethodError: > org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V > at org.apache.log4j.Category.log(Category.java:288) > at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:199) > at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:412) > at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:350) > at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) > at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) > at oracle.acs.assessment.util.SpringHelper.initContext(SpringHelper.java:34) > at oracle.acs.assessment.util.SpringHelper.getBean(SpringHelper.java:57) > at oracle.acs.assessment.PatchDataExtractionActivator.start(PatchDataExtractionActivator.java:50) > at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999) > at java.security.AccessController.doPrivileged(Native Method) > at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) > ... 14 more Nested Exception: java.lang.NoSuchMethodError:
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
at org.apache.log4j.Category.log(Category.java:288) at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:199) at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:412) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:350) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) at oracle.acs.assessment.util.SpringHelper.initContext(SpringHelper.java:34) at oracle.acs.assessment.util.SpringHelper.getBean(SpringHelper.java:57) at oracle.acs.assessment.PatchDataExtractionActivator.start(PatchDataExtractionActivator.java:50) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:999) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:993) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:974) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:260) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:252) at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:260) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:150) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:291) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(FrameworkConsole.java:276) at com.sun.svc.container.admin.cli.Console.run(Console.java:85) at java.lang.Thread.run(Thread.java:724) Nested Exception: java.lang.NoSuchMethodError:
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
bei org.apache.log4j.Kategorie.log(Kategorie.java:288)
bei org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:199)
bei org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:412)
bei org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:350)
bei org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
bei org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:93)
bei oracle.acs.Bewertung.util.SpringHelper.initContext(SpringHelper.java:34)
bei oracle.acs.Bewertung.util.SpringHelper.getBean(SpringHelper.java:57)
bei oracle.acs.Bewertung.PatchDataExtractionActivator.start(PatchDataExtractionActivator.java:50)
bei org.eclipse.osgi.Rahmen.intern.core.BundleContextImpl$2.run(BundleContextImpl.java:999)
bei java.Sicherheit.AccessController.doPrivileged(Native Method)
bei org.eclipse.osgi.Rahmen.intern.core.BundleContextImpl.startActivator(BundleContextImpl.java:993)
bei org.eclipse.osgi.Rahmen.intern.core.BundleContextImpl.start(BundleContextImpl.java:974)
bei org.eclipse.osgi.Rahmen.intern.core.BundleHost.startWorker(BundleHost.java:346)
bei org.eclipse.osgi.Rahmen.intern.core.AbstractBundle.start(AbstractBundle.java:260)
bei org.eclipse.osgi.Rahmen.intern.core.AbstractBundle.start(AbstractBundle.java:252)
bei org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:260)
bei der sun.reflektieren.NativeMethodAccessorImpl.invoke0(Native-Methode)
bei der sun.reflektieren.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
bei der sun.reflektieren.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
bei java.lang.reflektieren.Methode.invoke(Method.java:606)
bei org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:150)
bei org.eclipse.osgi.Rahmen.intern.core.FrameworkConsole.docommand(FrameworkConsole.java:291)
bei org.eclipse.osgi.Rahmen.intern.core.FrameworkConsole.Konsole(FrameworkConsole.java:276)
bei com.Sonne.svc.container.admin.cli.Console.ausführen(Konsole.java:85)
bei java.lang.Thread.run(Thread.java:724)
Meine Pom-Datei ist
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>oracle.acs.mf</groupId>
<artifactId>assessment</artifactId>
<version>all</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupId>oracle.acs.mf</groupId>
<artifactId>PatchDataExtractionBundle</artifactId>
<version>${assmnt.version}</version>
<packaging>bundle</packaging>
<name>Sun IT Services :: Monitoring Framework :: PatchDataExtractionBundle Bundle</name>
<description>PatchDataExtractionBundle OSGi bundle project.</description>
<properties>
<slf4j.version>1.6.1</slf4j.version>
<logback.version>1.0.11</logback.version>
</properties>
<dependencies>
<dependency>
<groupId>com.sun.cs</groupId>
<artifactId>transport</artifactId>
<version>2.5.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.sun.mf</groupId>
<artifactId>MonitoringFrameworkBundle</artifactId>
<version>3.0-SNAPSHOT</version>
<!--<scope>provided</scope>-->
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>oracle.acs.platform</groupId>
<artifactId>MonitoringFrameworkBundle</artifactId>
<!--<version>all</version>-->
<version>3.5.999</version>
<type>jar</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>2.5.4</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.4</version>
<type>jar</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.karaf.shell</groupId>
<artifactId>org.apache.karaf.shell.console</artifactId>
<version>2.2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>oracle.jdbc</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.1.0.5.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>osgi</artifactId>
<version>3.5.0.v20090520</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>oracle.acs.mf</groupId>
<artifactId>assessment-common</artifactId>
<version>2.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Bundle-Activator>oracle.acs.assessment.PatchDataExtractionActivator</Bundle-Activator>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<!-- include the complete set of transitive dependencies -->
<Embed-Transitive>true</Embed-Transitive>
<Embed-Directory>META-INF/lib</Embed-Directory>
<!-- Custom entries
<CONFIG_FILE>/${install.config.dir}/patch_assessment.properties</CONFIG_FILE>-->
<Export-Package>
oracle.acs.assessment.service.*;oracle.acs.assessment.entity.*;version=${project.version}
</Export-Package>
<Import-Package>
org.osgi.service.http,
org.osgi.framework;version="1.3.0",
org.eclipse.osgi.framework.console, *;resolution:=optional
</Import-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
- Die Antwort hängt davon ab, was Sie tun möchten. Möchten Sie mit slf4j für das logging? Wenn dem so ist, das entfernen ist es ziemlich kontraproduktiv. Offenbar eine Ihrer Abhängigkeiten verwendet apache commons logging, aber nicht finden können, eine Durchführung. Wenn Sie also möchten, loggen Sie via slf4j/logback, müssen Sie die jcl-over-slf4j-Abhängigkeit, die Sie ausgeschlossen, in Ihrer pom. Es stellt sicher, dass alle jcl-events weitergeleitet werden, die via slf4j statt.
- ja ich will slf4j für das logging, Da war ich immer Fehler, dass die Methode nicht gefunden Ausnahme , die ich im internet gesurft und gefunden, dass der Fehler möglicherweise aufgrund der zahlreichen Abhängigkeiten von slf4j , so dass ich ausgeschlossen slf4j von allen Abhängigkeiten, bin ich noch immer diesen Fehler. Ich habe folgenden Zweifel , können Sie bitte klären .. Da möchte ich slf4j für das logging , ich habe es in Abhängigkeit auch, aber da war ich immer Ausnahme könnte sein, aufgrund mehrerer slf4j-version der Abhängigkeit, die ich dachte, andere Abhängigkeit herunterladen . Sollte ich es ausschließen von anderen abhängig sind oder nicht???
- Hi Sheltem , können Sie mir helfen was soll ich tun, um zu entfernen diese Ausnahme, denn ich bin stecken geblieben auf diese Ausnahme schlecht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, Sie sind mit Maven 3.x. So fügen Sie eine
<dependencyManagement>
Abschnitt, um Ihre POM, in dem Sie konfigurieren die aktuelle version von slf4j (dies würde gehen in Ihrem übergeordneten POM so alle Module verwenden, diese überschreibt):Dann in Ihren Modulen' POM, verwenden Sie die Abhängigkeiten in Ihrem Haupt -
<dependencies>
Abschnitt wie folgt (ich würde vorschlagen, entfernen Sie auch die AUSSCHLÜSSE von den anderen Abhängigkeiten Maven-sollte in der Lage sein, um wählen Sie die richtigen Versionen da sind Sie schon überschreiben es):Führen Sie nun einen
mvn clean install
von der Wurzel des Projekts.