wake-up-neo.com

Fehler beim Starten der Spring Boot-Anwendung: Die Schnittstelle org.springframework.context.ApplicationListener kann nicht instanziiert werden

Ich habe ein Frühjahrsprojekt und versuche, dafür zu sorgen, dass der Federstiefel verwendet wird, und um beim eingebetteten Tomcat Folgendes auszuführen:

https://spring.io/guides/gs/rest-service/

Dies ist meine Bewerbung

//@Configuration
//@EnableAspectJAutoProxy
@SpringBootApplication
@ComponentScan(basePackages = "gux.prome")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

Wenn ich den Maven-Befehl: mvn spring-boot:run verwende, wird das Projekt gut gestartet, aber ich muss debuggen. Ich verwende diese Hauptmethode bei InteliJ.

Exception in thread "main" Java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.ApplicationListener : org.springframework.boot.logging.ClasspathLoggingApplicationListener
    at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.Java:414)
    at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.Java:394)
    at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.Java:385)
    at org.springframework.boot.SpringApplication.initialize(SpringApplication.Java:263)
    at org.springframework.boot.SpringApplication.<init>(SpringApplication.Java:237)
    at org.springframework.boot.SpringApplication.run(SpringApplication.Java:1191)
    at org.springframework.boot.SpringApplication.run(SpringApplication.Java:1180)
    at gux.prome.config.Application.main(Application.Java:19)
    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 com.intellij.rt.execution.application.AppMain.main(AppMain.Java:134)
Caused by: Java.lang.NoClassDefFoundError: org/springframework/context/event/GenericApplicationListener
....

Dies ist der 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>gux</groupId>
  <artifactId>prome-data</artifactId>


  <version>1.0-SNAPSHOT</version>
  <name>prome-data Maven Webapp</name>
  <url>http://maven.Apache.org</url>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
  </parent>

  <dependencies>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- guava -->
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>18.0</version>
    </dependency>
    <!-- end of guava -->


    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
      <version>2.9.2</version>
    </dependency>

  </dependencies>


  <properties>
    <Java.version>1.7</Java.version>
  </properties>


  <build>

    <finalName>prome-data</finalName>

    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>

      <!--<plugin>-->
      <!-- use Java 7 -->
        <!--<artifactId> maven-compiler-plugin</artifactId>-->
        <!--<version>3.1</version>-->
        <!--<configuration>-->
          <!--<source> 1.7</source>   -->
          <!--<target> 1.7</target>-->
        <!--</configuration>-->
      <!--</plugin>-->

    </plugins>
  </build>

  <!--<repositories>-->
    <!--<repository>-->
      <!--<id>spring-releases</id>-->
      <!--<url>http://repo.spring.io/libs-release</url>-->
    <!--</repository>-->
  <!--</repositories>-->

  <!--<pluginRepositories>-->
    <!--<pluginRepository>-->
      <!--<id>spring-releases</id>-->
      <!--<url>http://repo.spring.io/libs-release</url>-->
    <!--</pluginRepository>-->
  <!--</pluginRepositories>-->


</project>
10
Jaskey

Dies ist ein Symptom eines Versionskonflikts irgendwo in Ihren Spring-Abhängigkeiten, aber nicht unbedingt nur Spring Boot und Spring selbst. Ich hatte dies zwischen meinem Spring Boot-Elternteil:

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.3.5.RELEASE</version>
  <relativePath></relativePath>
</parent>

und meine Spring Cloud Config-Abhängigkeit:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-config-client</artifactId>
  <version>1.0.4.RELEASE</version>
</dependency>

Aus irgendeinem Grund kann ich die Abhängigkeit von spring-cloud-config-client nicht ohne explizite Versionsdeklaration definieren.

Durch die Aktualisierung beider Versionen auf die neueste Version (1.3.5.RELEASE und 1.1.1.RELEASE) wurde das Problem behoben. 

Fazit
Aktualisieren Sie Ihre Abhängigkeiten auf die neuesten korrekten

15
ISparkes

ich hatte den gleichen Fehler, ich habe gerade die Release-Version des Spring Boot Parent geändert und jetzt funktioniert alles richtig

0
petrucci