天天看點

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管理的架包,啟動後正常