解决新 maven 项目抛出 ClassNotFoundException

本贴最后更新于 3068 天前,其中的信息可能已经水流花落

异常背景

今天调试一个项目的时候,遇到了一个墨明棋妙的问题。大概就是说spring的web容器初始化失败,原因是找不到某个类


在这里我要说明一下,这个错误出现是有几率的。和自身工程完全没有半毛钱的关系,所以不是自己代码的原因。这事Eclipse本身的问题。


异常描述

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4876)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5455)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:634)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:671)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1840)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

我第一反应就是忘记导包了,于是赶紧检查pom文件,却发现pom文件完全正确,该引的包都引进来了。

我又试着清理了一下缓存,重新发布了一下工程,依然是这个样子。

那么这就有点儿意思了。我在网上搜索相关的信息,发现有类似经历的人不少,给出解决方案的人基本没有,能用的就那么一个。


异常解决:

上面说到这完全是eclipse自身的问题,eclipse在工程发布是,没有将maven中的依赖加进去。其实你此时将工程导出为war包,你也会发现war包体积特别小,而且里面根本没有你要引入的包。

解决方法很简单,按下列步骤手动设置即可

1、右键工程-->properties

QQ截图20160629094957.jpg

2、找到Deployment Assembly

QQ截图20160629095219.jpg

3、点击Add按钮,在弹出框中选中java Build Path Entries

QQ截图20160629095514.jpg

4、next,选中Maven Dependencies,finish。

QQ截图20160629095455.jpg

至此,解决!

  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 304 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...