2017-12-29 14 views
0

ich unsere springboot App 1.5.9 zu aktualisieren, und ich bin mit dem folgenden Laufzeit Problem zu begegnen mit Protokollierung (Kompilierung ohne Fehler funktioniert):Spring Boot 1.5.9 verursacht eine Laufzeitausnahme mit Logging-Bibliotheken 2.10.0?

Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter.<init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V 

Es offensichtlich auf die aktualisierten Versionen lib Ich habe in engem Zusammenhang steht (wie es vorher mit Spring Boot 1.4 und 2.6 Version der Logging-Bibliotheken funktionierte, aber wenn ich mvn Abhängigkeit überprüfen - ich sehe kein Problem.

Hier sind die Log-Libs Versionen der App verwendet, die bewirkt, dass die obige Laufzeitausnahme:

  • Feder-boot 1.5.9
  • slf4j-api 2.10.0
  • log4j-slf4j-impl 2.10.0
  • log4j-api 2.10.0
  • log4j-core 2.10.0
  • log4j-1,2-api 2.10.0
  • commons-io 2,5

Dank

Antwort

0

Ich vermute, Sie explizit die Version für die log4j Abhängigkeiten angegeben. Sie sollten dies nicht tun, da spring boot parent kompatible Bibliotheksversionen angibt.

Um log4j mit Feder-Boot verwenden Sie müssen nur die Standard-Logging-Abhängigkeit (Feder-boot-Starter-Logging) auszuschließen und beinhalten die Feder-boot-Starter-log4j2:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter</artifactId> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-logging</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-log4j2</artifactId> 
</dependency> 
+0

Vielen Dank für beantworte meine Frage! Das Seltsame ist, dass ich meinen Pom genau so habe, wie du ihn angegeben hast, und der Fehler ist immer noch passiert ... Obwohl ich gerade bemerkt habe, dass ich die Versionsnummern für die Log-Bibliotheken oben nicht angegeben habe (2.10.0) kommt nicht vor. Ich starte dann mvn dependency tree und ich stelle fest, dass ich jetzt die Version 2.7 der log libs verwende. Von daher sieht es so aus, als wäre der Fehler, dass ich explizit die Version 2.10.0 der Log-Bibliotheken verwende. –

+0

Entschuldigung, du hast das genau in deinem Kommentar gesagt - Danke nochmal! –

+0

Gern geschehen. Ich denke, es ist kein "echter" Konflikt, weil Ihre Abhängigkeiten nicht mehrere Versionen der log4j-Bibliotheken angeben. Es ist nur eine inkompatible Version. Sie sollten die Version einer Lib niemals explizit definieren, wenn sie bereits im Parent-Element für Spring-Boot angegeben ist. – Cyril

Verwandte Themen