1. 程式人生 > >maven的java web項目啟動找不到Spring ContextLoaderListener的解決辦法

maven的java web項目啟動找不到Spring ContextLoaderListener的解決辦法

lai ogr sta AD tomcat match appdata proc sessionid

用maven搭建的java web項目,上傳到git倉庫後,當同事clone下來項目,部署到tomcat運行時,就報了如下錯誤,即啟動web項目時,加載web.xml文件,找不到spring的監聽器,控制臺錯誤如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 十月 30, 2015 4:42:36 下午 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java64\jdk1.7.0_55\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Java64\jdk1.7.0_55\jre\bin;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.
0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Java64\jdk1.7.0_55\bin;D:\Program Files\MySQL\MySQL Server
5.5\bin;D:\developer\apache-maven-3.1.1\bin;C:\Program Files\nodejs\;C:\Program Files\TortoiseGit\bin;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Users\van\AppData\Local\Android\sdk\platform-tools;C:\Users\van\AppData\Local\Android\sdk\tools;d:\Program Files\Git\cmd;d:\Program Files\Git\mingw64\bin;d:\Program Files\Git\usr\bin;C:\Users\van\AppData\Roaming\npm;. 十月 30, 2015 4:42:36 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host} Setting property ‘xmlNamespaceAware‘ to ‘false‘ did not find a matching property. 十月 30, 2015 4:42:37 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host} Setting property ‘xmlValidation‘ to ‘false‘ did not find a matching property. 十月 30, 2015 4:42:37 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source‘ to ‘org.eclipse.jst.j2ee.server:dsx-app‘ did not find a matching property. 十月 30, 2015 4:42:37 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["http-bio-8080"] 十月 30, 2015 4:42:37 下午 org.apache.coyote.AbstractProtocol init 信息: Initializing ProtocolHandler ["ajp-bio-8019"] 十月 30, 2015 4:42:37 下午 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 1064 ms 十月 30, 2015 4:42:37 下午 org.apache.catalina.core.StandardService startInternal 信息: Starting service Catalina 十月 30, 2015 4:42:37 下午 org.apache.catalina.core.StandardEngine startInternal 信息: Starting Servlet Engine: Apache Tomcat/7.0.53 十月 30, 2015 4:42:38 下午 org.apache.catalina.util.SessionIdGenerator createSecureRandom 信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [132] milliseconds. 十月 30, 2015 4:42:38 下午 org.apache.catalina.core.StandardContext listenerStart 嚴重: 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:1720) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4888) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 十月 30, 2015 4:42:38 下午 org.apache.catalina.core.StandardContext listenerStart 嚴重: Skipped installing application listeners due to previous error(s) 十月 30, 2015 4:42:38 下午 org.apache.catalina.core.StandardContext startInternal 嚴重: Error listenerStart 十月 30, 2015 4:42:38 下午 org.apache.catalina.core.StandardContext startInternal 嚴重: Context [/dsx-app] startup failed due to previous errors 十月 30, 2015 4:42:38 下午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler ["http-bio-8080"] 十月 30, 2015 4:42:38 下午 org.apache.coyote.AbstractProtocol start 信息: Starting ProtocolHandler ["ajp-bio-8019"] 十月 30, 2015 4:42:38 下午 org.apache.catalina.startup.Catalina start 信息: Server startup in 1363 ms

這,這個錯誤真心讓人醉了,究竟是怎麽回事,我本地是沒問題的啊,為什麽同事clone下來就出了這種錯誤。經過半天研究後發現,不知道什麽原因,clone下來後用eclipse導入maven項目後,在他那裏用git status命令看了一下,有兩個配置文件改變了,一個是.classpath,一個是.project,這兩個文件內容變了,當我把這兩個文件還原為最初狀態後,項目就正常了。

雖然這樣能夠解決,但是終歸不太完美,因為以後新人進來還會出現這種問題!

最後終於找到解決方法,感謝原作者,參考http://www.yihaomen.com/article/java/471.htm

解決方法:

1. 右鍵單擊工程項目 ->點擊 properties
2. 選擇 Deployment Assembly
3. 點擊 Add -> Java Build Path Entries -> Next
4. 選擇 Maven Dependencies -> Finish -> Apply -> OK
5. Clean project and server. 重啟server

maven的java web項目啟動找不到Spring ContextLoaderListener的解決辦法