天天看点

maven 项目 启动时异常:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListen

在项目web.xml中配置:

<listener>

  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

部署到tomcat中启动时报异常:

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1643)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1488)

at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)

at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)

at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4458)

at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5004)

at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:4999)

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:745)

找不到ContextLoaderListener类,而ContextLoaderListener类在spring-web 架包中是存在的,如下:

maven 项目 启动时异常:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListen

原因是未将maven管理的架包构建到WEB-INF/lib目录下,在部署到tomcat时项目缺少lib目录,导致找不到spring-web 架包中的ContextLoaderListener类

解决方案:

RC(right click on web project) --> properties --> Deployment Assembly --> Add --> Java Build Path Entries --> Next -->Maven Dependencies --> finish

重新署部项目后,tomcat项目目录下已存在lib目录,lib目录下有所有maven管理的架包,启动后正常