Problem
When creating a demo project using Spring Boot 2.0 RELEASE, starting the Application via mvn spring-boot:run
results in a java.lang.NoClassDefFoundError
. See below for stacktrace and full output
Reproduce
- Create a new project via https://start.spring.io/ and add
Actuator
as well asReactive Web
as a dependency. - Download the file and extract
- Execute
mvn spring-boot:run
Stacktrace
org.springframework.context.ApplicationContextException: Unable to start reactive web server; nested exception is java.lang.NoClassDefFoundError: io/netty/util/internal/logging/InternalLogLevel
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.onRefresh(ReactiveWebServerApplicationContext.java:76) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-5.0.4.RELEASE.jar:5.0.4.RELEASE]
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:61) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234) [spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at com.example.demo.DemoApplication.main(DemoApplication.java:10) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:496) [spring-boot-maven-plugin-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]
Caused by: java.lang.NoClassDefFoundError: io/netty/util/internal/logging/InternalLogLevel
at io.netty.handler.logging.LogLevel.<clinit>(LogLevel.java:24) ~[netty-handler-4.1.22.Final.jar:4.1.22.Final]
at io.netty.handler.logging.LoggingHandler.<clinit>(LoggingHandler.java:43) ~[netty-handler-4.1.22.Final.jar:4.1.22.Final]
at reactor.ipc.netty.http.server.HttpServer.<clinit>(HttpServer.java:235) ~[reactor-netty-0.7.5.RELEASE.jar:0.7.5.RELEASE]
at org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory.createHttpServer(NettyReactiveWebServerFactory.java:102) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory.getWebServer(NettyReactiveWebServerFactory.java:57) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.createWebServer(ReactiveWebServerApplicationContext.java:99) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.onRefresh(ReactiveWebServerApplicationContext.java:73) ~[spring-boot-2.0.0.RELEASE.jar:2.0.0.RELEASE]
... 14 common frames omitted
Caused by: java.lang.ClassNotFoundException: io.netty.util.internal.logging.InternalLogLevel
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_161]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_161]
... 21 common frames omitted
Full Output
Maven Version
$ mvn --version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T09:58:13+02:00)
Maven home: /nix/store/r0h6ivi4gr4m0gkp7rc7z6aizplppmr9-apache-maven-3.5.2/maven
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: /nix/store/3q8dm7wjpsfsnvfjrjjfn7fm6aqffvww-oraclejdk-8u161/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.9.78", arch: "amd64", family: "unix"
Comment From: wilkinsona
One of Netty's jars was corrupted when Maven downloaded it. Run mvn dependency:purge-local-repository
or delete your local Maven cache and try again.
Comment From: markus1189
That worked thanks!
Comment From: punkratz312
thx
Comment From: tharushashehan
This really saved my day...... @markus1189 thanks for raising such a issue and @wilkinsona a very big thanks for your answer...!!!!!!!