使用maven搭建項目(這個錯誤和是不是使用maven搭建項目沒有關系),然后部署到tomcat中運行。
出現問題1:
tomcat跑起來了,但是啟動時間很短,沒有報錯,項目不能正常訪問
項目啟動時間很短,並且沒有報錯
並且項目無法正常訪問
發現問題過程:
查看tomcat下,發現這個項目在tomcat的webapps下部署的僅僅是項目的部分文件,有好多的東西並沒有部署進來
我們發現tomcat下部署的本項目中 並沒有lib依賴包庫 等目錄。
解決途徑:
因此我們需要通過 使用deployment assembly為web工程指定在運行的時候,指定將依賴的工程打成jar包部署到web-inf/lib下
也就是通過這個設置項目在tomcat中要打包部署的東西
將這個選擇添加到我們需要打包部署的目錄中
這樣 項目就可以啟動起來了。
問題2:項目啟動,會報錯java.lang.ClassNotFoundException: ContextLoaderListener

1 嚴重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener 2 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 3 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 4 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 5 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4153) 6 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709) 7 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802) 8 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 9 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583) 10 at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1080) 11 at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1003) 12 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:507) 13 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) 14 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325) 15 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 16 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068) 17 at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) 18 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060) 19 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 20 at org.apache.catalina.core.StandardService.start(StandardService.java:525) 21 at org.apache.catalina.core.StandardServer.start(StandardServer.java:759) 22 at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 23 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 24 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 25 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 26 at java.lang.reflect.Method.invoke(Method.java:606) 27 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 28 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 29 六月 23, 2016 4:24:17 下午 org.apache.catalina.core.StandardContext listenerStart 30 嚴重: Error configuring application listener of class org.springframework.web.util.IntrospectorCleanupListener 31 java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener 32 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 33 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 34 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4153) 35 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709) 36 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802) 37 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 38 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583) 39 at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1080) 40 at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1003) 41 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:507) 42 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322) 43 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325) 44 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 45 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068) 46 at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) 47 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060) 48 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 49 at org.apache.catalina.core.StandardService.start(StandardService.java:525) 50 at org.apache.catalina.core.StandardServer.start(StandardServer.java:759) 51 at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 52 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 53 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 54 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 55 at java.lang.reflect.Method.invoke(Method.java:606) 56 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 57 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
這個報錯信息顯示,我們web.xml中配置的這兩個Listener所依賴的類找不到:
就是這兩個listener:

1 <!-- 監聽servletContext,啟動contextConfigLocation中的spring配置信息 --> 2 <listener> 3 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 4 </listener> 5 6 7 <!-- 防止spring內存溢出監聽器 可用可不用--> 8 <listener> 9 <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> 10 </listener>
發現問題的過程:
但是我們在maven的pom.xml中已經將它所依賴的架包全都導入了。
工程為maven工程,ContextLoaderListener類位於spring-web-3.1.0.RELEASE.jar包中。檢查了maven的pom.xml,依賴引入正常。在工程Maven Dependencies視圖中也能看到spring-web-3.1.0.RELEASE.jar包被正常引入進來了。
解決途徑:
所以,應該是項目中所依賴的架包什么的都沒有被正常的打包部署到tomcat下
添加后,重新clean一下項目,然后啟動起來項目正常啟動!!!!