异常背景
今天调试一个项目的时候,遇到了一个墨明棋妙的问题。大概就是说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
2、找到Deployment Assembly
3、点击Add按钮,在弹出框中选中java Build Path Entries
4、next,选中Maven Dependencies,finish。
至此,解决!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于