J'utilise storm avec python. J'ai utilisé cette commande pour exécuter la topologie localementNoSuchMethodError: org.slf4j
mvn compile exec:java -Dexec.classpathScope=compile -Dexec.mainClass=my.Topology
et obtenu cette erreur
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.apache.log4j.Category.differentiatedLog(Category.java:186)
at org.apache.log4j.Category.info(Category.java:229)
J'ai utilisé cette commande mvn dependency:tree
pour voir les versions de slf4j
et est ici la partie de slf4j
je suis arrivé
org.apache.storm:storm-core:jar:0.9.6:provided
[INFO] +- org.clojure:clojure:jar:1.5.1:provided
[INFO] +- clj-time:clj-time:jar:0.4.1:provided
[INFO] +- joda-time:joda-time:jar:2.0:provided
[INFO] +- compojure:compojure:jar:1.1.3:provided
[INFO] +- org.clojure:core.incubator:jar:0.1.0:provided
[INFO] +- org.clojure:tools.macro:jar:0.1.0:provided
[INFO] +- clout:clout:jar:1.0.1:provided
[INFO] +- ring:ring-core:jar:1.1.5:provided
[INFO] +- commons-fileupload:commons-fileupload:jar:1.2.1:provided
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- hiccup:hiccup:jar:0.3.6:provided
[INFO] +- ring:ring-devel:jar:0.3.11:provided
[INFO] +- clj-stacktrace:clj-stacktrace:jar:0.2.2:provided
[INFO] +- ring:ring-jetty-adapter:jar:0.3.11:provided
[INFO] +- ring:ring-servlet:jar:0.3.11:provided
[INFO] +- org.mortbay.jetty:jetty:jar:6.1.26:provided
[INFO] +- org.mortbay.jetty:jetty-util:jar:6.1.26:provided
[INFO] +- org.clojure:tools.logging:jar:0.2.3:provided
[INFO] +- org.clojure:math.numeric-tower:jar:0.0.1:provided
[INFO] +- org.clojure:tools.cli:jar:0.2.4:provided
[INFO] +- commons-io:commons-io:jar:2.4:provided
[INFO] +- org.apache.commons:commons-exec:jar:1.1:provided
[INFO] +- commons-lang:commons-lang:jar:2.5:provided
[INFO] +- com.googlecode.json-simple:json-simple:jar:1.1:provided
[INFO] +- com.twitter:carbonite:jar:1.4.0:provided
[INFO] +- com.esotericsoftware.kryo:kryo:jar:2.21:provided
[INFO] +-
com.esotericsoftware.reflectasm:reflectasm:jar:shaded:1.07:provided
[INFO] +- org.ow2.asm:asm:jar:4.0:provided
[INFO] +- com.esotericsoftware.minlog:minlog:jar:1.2:provided
[INFO] +- org.objenesis:objenesis:jar:1.2:provided
[INFO] +- com.twitter:chill-java:jar:0.3.5:provided
[INFO] +- org.yaml:snakeyaml:jar:1.11:provided
[INFO] +- commons-logging:commons-logging:jar:1.1.3:provided
[INFO] +- commons-codec:commons-codec:jar:1.6:provided
[INFO] +- com.googlecode.disruptor:disruptor:jar:2.10.4:provided
[INFO] +- org.jgrapht:jgrapht-core:jar:0.9.0:provided
[INFO] +- ch.qos.logback:logback-classic:jar:1.0.13:provided
[INFO] +- ch.qos.logback:logback-core:jar:1.0.13:provided
[INFO] +- org.slf4j:slf4j-api:jar:1.7.5:provided
[INFO] +- org.slf4j:log4j-over-slf4j:jar:1.6.6:provided
[INFO] \- jline:jline:jar:2.11:provided
Mon POM
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Sim</groupId>
<artifactId>Project</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Pro</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-core</artifactId>
<version>0.9.6</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory> ${basedir}/multilang</directory>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.5.0</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<includeProjectDependencies>true</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
<classpathScope>compile</classpathScope>
<mainClass>Sim.Topology</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
merci de répondre, mais mon pom ne contient rien à propos de slf4j. donc je ne l'ai pas défini fourni. comment puis-je vérifier cela? – user5520049
il est transitoirement requis par tempête, vous devez vous assurer que votre environnement d'exécution a ces bibliothèques sur le chemin de classe. Comment la dépendance à la tempête est-elle définie? –
excusez-moi, voulez-vous dire que je devrais vérifier le dossier de la bibliothèque dans la tempête? comme je l'ai vérifié et trouvé deux fichiers pour slf4j je l'ai enlevé. mais j'ai trouvé ces fichiers dans m2/repository/org. que devrais-je faire après ça? Je poste mon pom dans le poste de question. Merci pour votre patience – user5520049