问题症状:
当我在使用idea调试springMVC项目时控制台输出如下错误信息
07-May-2019 09:31:54.892 严重 [RMI TCP Connection(5)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
07-May-2019 09:31:54.892 严重 [RMI TCP Connection(5)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [/spring_war_exploded] startup failed due to previous errors
查看Tomcat Localhost Log日志时显示
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1363)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:540)
...
也就是springframework中的ContextLoaderListener没有找到
错误原因:
我检查了一下,发现工程部署后在WEB-INF文件夹下没有生成lib目录,正常情况下,会生成lib目录并把工程的所有依赖jar包都部署到该目录下。
解决方案:
File->Project Structure点击左侧的Artifacts,然后找到Output Layout选项卡
右键单击Available Elements下面的项目名称,选择Put into Output Root
操作之后会发现WEB-INF目录下出现了lib目录
好了,大功告成。重新运行项目就可以了。