eclipse 啟動項目報錯:找不到 Spring 監聽器類 org.springframework.web.context.ContextLoaderListener
嚴重: 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:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 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:4660) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
本項目是maven項目,解決思路如下:
1. 檢查 pom.xml 文件 是否依賴引入了該類的JAR包:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
2. 檢查 Maven Dependencies 視圖中是否已下載完成,正常顯示。
3. 查看工作空間中
.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\*\WEB-INF\lib\
文件夾下面是否有這個JAR包,如果沒有:
1. 右鍵點擊項目--選擇Properties
選擇Deployment Assembly,在右邊點擊Add按鈕,在彈出的窗口中選擇Java Build Path Entries。如下圖所示:

2. 點擊Next,選擇Maven Dependencies

3.點擊Finish,然后可以看到已經把Maven Dependencies添加到Web應用結構中了

操作完后,重新部署工程,不再報錯了。然后我們再到.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\目錄下,發現工程WEB-INF/lib目錄下所有的依賴jar包也都已經部署進來。問題因此解決。
