在項目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管理的架包建構到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管理的架包,啟動後正常