tomcat报org.springframework.web.context.ContextLoaderListener找不到,类加载器问题

来源:互联网 发布:linux虚拟机文件共享 编辑:程序博客网 时间:2024/05/17 06:17

错误打印信息如下:

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:509)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:490)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4775)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)


错误原因:是因为类加载器的jar找不到


错误解释:

Java虚拟机是根据Java ClassLoader(类加载器)决定如何加载Class。 
系统默认提供了3个ClassLoader 
Root ClassLoader,ClassPath Loader,Ext ClassLoader 
我们也可以编写自己的ClassLoader,去加载特定环境下的Jar文件。 
能不能加载Jar,加载哪里的Jar,是由ClassLoader决定的。 

解决方法:

maven项目

将jar包copy到web-inf下面的lib中。WEB Application中jar包最好放在webroot或webcontent下的lib文件夹内,特别是xml中用到的jar包。

maven项目

右击项目----->propertise------>resouce------>deployment assembly----->add----->java Build Path Entries------>Maven Dependencies(双击)------apply 


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