java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener

丈夫欲遂平生志,一载寒窗一举汤。这篇文章主要讲述java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener相关的知识,希望能为你提供帮助。
http://www.cnblogs.com/softidea/p/6064091.html
 
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/event/GenericApplicationListener From the above error, application is unable to find the class defined from the jar dependencies. GenericApplicationListener is added from spring version 4.2.
Upgrade your spring version to 4.2 and recheck.
http://stackoverflow.com/questions/31489947/noclassdeffounderror-genericapplicationlistener-when-switching-from-spring-bo
 
Spring Boot manages a bunch of dependencies for you and  allows you to add them without specifying the version. Spring Boot is obviously based on Spring Framework and uses the latest and greatest so you should avoid at all cost to fix the spring framework version to use yourself.
If you have upgraded to a newer version (to include a bug fix or something) make sure to  remove the override  before you upgrade Spring Boot as the new version it requires may be incompatible with your override.
If you are using other projects that  also  provide a dependency management on Spring Framework (such as Spring Cloud) make sure that the dependency management of Spring Boot takes precedence. With Maven, make sure to add the  spring-boot-dependencies  BOM as  the  first entry  in the  < dependenciesManagement>   section.
http://stackoverflow.com/questions/31489947/noclassdeffounderror-genericapplicationlistener-when-switching-from-spring-bo
 
13.2  MavenMaven users can inherit from the  spring-boot-starter-parent  project to obtain sensible defaults. The parent project provides the following features:

  • Java 1.6 as the default compiler level.
  • UTF-8 source encoding.
  • A  Dependency Management section, allowing you to omit  < version>   tags for common dependencies, inherited from the  spring-boot-dependencies  POM.
  • Sensible  resource filtering.
  • Sensible plugin configuration (exec plugin,  surefire,  Git commit ID,  shade).
  • Sensible resource filtering for  application.properties  and  application.yml  including profile-specific files (e.g.  application-foo.properties  andapplication-foo.yml)
On the last point: since the default config files accept Spring style placeholders (${…?}) the Maven filtering is changed to use  @..@  placeholders (you can override that with a Maven property  resource.delimiter).
13.2.1  Inheriting the starter parent
To configure your project to inherit from the  spring-boot-starter-parent  simply set the  parent:
< !-- Inherit defaults from Spring Boot --> < parent> < groupId> org.springframework.boot< /groupId> < artifactId> spring-boot-starter-parent< /artifactId> < version> 1.4.2.RELEASE< /version> < /parent>

You should only need to specify the Spring Boot version number on this dependency. If you import additional starters, you can safely omit the version number.
With that setup, you can also override individual dependencies by overriding a property in your own project. For instance, to upgrade to another Spring Data release train you’d add the following to your  pom.xml.
< properties> < spring-data-releasetrain.version> Fowler-SR2< /spring-data-releasetrain.version> < /properties>

Check the  spring-boot-dependencies  pom  for a list of supported properties.
13.2.2  Using Spring Boot without the parent POM
Not everyone likes inheriting from the  spring-boot-starter-parent  POM. You may have your own corporate standard parent that you need to use, or you may just prefer to explicitly declare all your Maven configuration.
If you don’t want to use the  spring-boot-starter-parent, you can still keep the benefit of the dependency management (but not the plugin management) by using ascope=import  dependency:
< dependencyManagement> < dependencies> < dependency> < !-- Import dependency management from Spring Boot --> < groupId> org.springframework.boot< /groupId> < artifactId> spring-boot-dependencies< /artifactId> < version> 1.4.2.RELEASE< /version> < type> pom< /type> < scope> import< /scope> < /dependency> < /dependencies> < /dependencyManagement>

That setup does not allow you to override individual dependencies using a property as explained above. To achieve the same result, you’d need to add an entry in thedependencyManagement  of your project  before  the  spring-boot-dependencies  entry. For instance, to upgrade to another Spring Data release train you’d add the following to your  pom.xml.
< dependencyManagement> < dependencies> < !-- Override Spring Data release train provided by Spring Boot --> < dependency> < groupId> org.springframework.data< /groupId> < artifactId> spring-data-releasetrain< /artifactId> < version> Fowler-SR2< /version> < scope> import< /scope> < type> pom< /type> < /dependency> < dependency> < groupId> org.springframework.boot< /groupId> < artifactId> spring-boot-dependencies< /artifactId> < version> 1.4.2.RELEASE< /version> < type> pom< /type> < scope> import< /scope> < /dependency> < /dependencies> < /dependencyManagement>

In the example above, we specify a  BOM  but any dependency type can be overridden that way.
13.2.3  Changing the Java version
The  spring-boot-starter-parent  chooses fairly conservative Java compatibility. If you want to follow our recommendation and use a later Java version you can add a  java.version  property:
< properties> < java.version> 1.8< /java.version> < /properties>

13.2.4  Using the Spring Boot Maven plugin
Spring Boot includes a  Maven plugin  that can package the project as an executable jar. Add the plugin to your  < plugins>   section if you want to use it:
< build> < plugins> < plugin> < groupId> org.springframework.boot< /groupId> < artifactId> spring-boot-maven-plugin< /artifactId> < /plugin> < /plugins> < /build>

If you use the Spring Boot starter parent pom, you only need to add the plugin, there is no need for to configure it unless you want to change the settings defined in the parent.
【java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener】 

    推荐阅读