java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -
i have spring project , try make use spring boot , run @ embadded tomcat following :
https://spring.io/guides/gs/rest-service/
this application
//@configuration //@enableaspectjautoproxy @springbootapplication @componentscan(basepackages = "gux.prome") public class application { public static void main(string[] args) { springapplication.run(application.class, args); } }
if use maven command: mvn spring-boot:run
, project starts fine, need debug , run main method @ intelij, exception occurs:
exception in thread "main" java.lang.illegalargumentexception: cannot instantiate interface org.springframework.context.applicationlistener : org.springframework.boot.logging.classpathloggingapplicationlistener @ org.springframework.boot.springapplication.createspringfactoriesinstances(springapplication.java:414) @ org.springframework.boot.springapplication.getspringfactoriesinstances(springapplication.java:394) @ org.springframework.boot.springapplication.getspringfactoriesinstances(springapplication.java:385) @ org.springframework.boot.springapplication.initialize(springapplication.java:263) @ org.springframework.boot.springapplication.<init>(springapplication.java:237) @ org.springframework.boot.springapplication.run(springapplication.java:1191) @ org.springframework.boot.springapplication.run(springapplication.java:1180) @ gux.prome.config.application.main(application.java:19) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ com.intellij.rt.execution.application.appmain.main(appmain.java:134) caused by: java.lang.noclassdeffounderror: org/springframework/context/event/genericapplicationlistener ....
this 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>
this symptom of version mismatch somewhere in spring dependencies, not spring boot , spring itself. had between spring boot parent:
<parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>1.3.5.release</version> <relativepath></relativepath> </parent>
and spring cloud config dependency:
<dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-config-client</artifactid> <version>1.0.4.release</version> </dependency>
for reason, not able define spring-cloud-config-client dependency without explicit version declaration.
updating both latest release version (1.3.5.release , 1.1.1.release) solved it.
Comments
Post a Comment