天天看点

IDEA启动tomcat报错500:ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

在使用IntelliJ IDEA开发时,启动tomcat报错如图所示:

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
           
IDEA启动tomcat报错500:ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
Root Cause
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
	org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1363)
	org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)

           

原因: 输出时,target WEB-INF目录下缺少lib

解决办法:

  1. 在IDEA中点击File > Project Structure > Artifacts >选中项目(例如seckill:war exploded), 在右侧Output Layout右击项目名,选择Put into Output Root
  2. 执行后,查看WEB-INF,此时在WEB-INF下新增了lib目录,里面是项目引用的jar包,点击OK
  3. 重启tomcat测试
    IDEA启动tomcat报错500:ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

另外tomcat配置参考如下图

IDEA启动tomcat报错500:ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
IDEA启动tomcat报错500:ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

注意:Application context需要将默认的路径修改为/,否则在浏览器地址栏需要多输入Application context里的内容

继续阅读