SpringMVC Maven項目 java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServle


今天在搭建SpringMVC開發框架時,遇到了一個問題,盡管在maven的POM.xml文件中配置了項目所依賴的jar包,但在啟動項目是已然報錯如下:

信息: Starting Servlet Engine: Apache Tomcat/7.0.56
十一月 27, 2017 3:19:14 下午 org.apache.catalina.util.SessionIdGenerator createSecureRandom
信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [187] milliseconds.
十一月 27, 2017 3:19:14 下午 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet springmvc as unavailable
十一月 27, 2017 3:19:14 下午 org.apache.catalina.core.StandardContext loadOnStartup
嚴重: Servlet /CRM threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5231)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5518)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    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)

十一月 27, 2017 3:19:14 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
十一月 27, 2017 3:19:14 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
十一月 27, 2017 3:19:14 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 630 ms

發現問題是spring所需要的包,maven已經下載到本地庫了,但是,項目啟動時引用不到。

解決方案如下:
**工程名上右擊 -> Properties -> Deployment Assembly,
Add -> Java Build Path Entries -> next -> 選擇maven Dependencies**

我的項目到這一步修改完就可以正常運行了,但發現有人說這時候還可能存在一點小問題,雖然spring jar在工程有被引用進來了,但是代碼中無法引用類庫,該問題的解決方法如下:
**1. 工程名上右擊 -> maven -> Disable Maven Nature;
2. 工程名上右擊 -> Configure -> Convert to maven project;
3. 最后需再次檢查最上面描述兩個問題的地方是否有重現,如有,重復步驟;**


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM