ecplise使用jetty启动maven项目java.lang.ClassNotFoundException

来源:互联网 发布:快速瘦大腿 知乎 编辑:程序博客网 时间:2024/06/05 06:39

错误场景:

ecplise(oxygen)使用jetty启动manven多模块项目,项目编译通过、install也正常但是在启动时出现java.lang.ClassNotFoundException,无法找到依赖的子模块项目,例如

project(maven项目)

-moduleA(jar)

-model

-dao

-moduleB(jar)

.....

-moduleC(web)


在A、B项目模块都colse时,moduleC可以通过jetty正常启动,当A、B项目处于打开的条件下,启动C会出现如下异常

java.lang.ClassNotFoundException: com.*********.support.security.interceptor.AddResponseInterceptorat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:487)at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:428)at org.springframework.util.ClassUtils.forName(ClassUtils.java:250)

无论重新打包或是clean、install或是maven的update,都无解。


解决办法

在出现异常的情况的可右击项目debug as -> debug configurations 打开后找到


此时你会发现引入模块的所有的classes文件夹都是灰色,此时异常就明了了,说明class文件在jetty启动时都没有找到。原因已找到,解决办法就简单了,选择第一个classes让其变为如下样式,发现所有的classes文件都显示成了黑色


再次启动jetty。OK


DONE.



阅读全文
0 0
原创粉丝点击