解决Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


在使用maven-shade-plugin插件时,报个错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
at com.waylau.lite.App.main(App.java:13)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.Handler
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

这个错误,在eclispe里面右键允许应用是不会有的。但使用maven-shade-plugin插件打包为可执行的jar时出现了。

问题原因

仔细排查了pom.xml文件发现了问题:

<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
<scope>provided</scope>
</dependency>

在引用jetty-servlet时,scope设置为了provided,意味着打包时,这个依赖不会被打进去。
要想不报错,只要把这个依赖打包进去jar即可。

解决方法

修改如下解决:

<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>

源码

  • 参考《Spring 5 开发大全》

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java

“解决Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler” 的相关文章