【问题标题】:Spring MVC application on Tomcat: 404 error, SNAPSHOT not availableTomcat 上的 Spring MVC 应用程序:404 错误,SNAPSHOT 不可用
【发布时间】:2011-06-14 14:42:58
【问题描述】:

我正在学习http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html 的教程,但遇到了麻烦。

运行部署的 WAR 文件时出现以下错误:

HTTP Status 404 - /HSR-backend-0.0.1-SNAPSHOT/

type Status report

message /HSR-backend-0.0.1-SNAPSHOT/

description The requested resource (/HSR-backend-0.0.1-SNAPSHOT/) is not available.

现在我完全不明白,SNAPSHOT 肯定在那里。

来自tomcat的日志;

    2011-jan-24 16:46:04 org.apache.catalina.core.ApplicationContext log
ALLVARLIG: Error loading WebappClassLoader
  context: /HSR-backend-0.0.1-SNAPSHOT
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@1172e08
 org.springframework.web.servlet.DispacherServlet
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispacherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4387)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4700)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:525)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1359)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1500)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:252)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
2011-jan-24 16:46:04 org.apache.catalina.core.StandardContext loadOnStartup
ALLVARLIG: Servlet /HSR-backend-0.0.1-SNAPSHOT threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispacherServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4387)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4700)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:525)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1359)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1500)
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:252)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)

我错过了什么?

更新:来自 tomcat 的新错误日志

2011-jan-24 17:05:18 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextDestroyed()
2011-jan-24 17:05:18 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextDestroyed()
2011-jan-24 17:05:18 org.apache.catalina.core.ApplicationContext log
INFO: Destroying Spring FrameworkServlet 'HSR-backend'
2011-jan-24 17:05:21 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'HSR-backend'
2011-jan-24 17:05:21 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
2011-jan-24 17:05:21 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
2011-jan-24 17:05:29 org.apache.catalina.core.ApplicationContext log
INFO: Destroying Spring FrameworkServlet 'HSR-backend'
2011-jan-24 17:05:38 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'HSR-backend'

【问题讨论】:

  • 如果下面的答案没有帮助,请发布 web.xml 文件

标签: tomcat servlets spring-mvc jakarta-ee


【解决方案1】:

您在web.xml 中拼错了DispatcherServlet

【讨论】:

  • 感谢您的回复。我将其更改为 DispatcherServlet,现在我得到了以下错误日志(请参阅原始帖子的底部)。
  • @tsegay:因为堆栈跟踪引用了DispacherServlet(即拼写错误)。
  • 我明白了。嗯,我仍然得到相同的 404 ......可能是什么问题?
【解决方案2】:

错误是Class not Found,你需要检查你是否在正确的地方包含了所有需要的jar,WEB-INF/lib

【讨论】:

  • 感谢您的回复。我正在使用 Maven,如何了解我的项目运行需要哪些 jar?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 2016-02-15
  • 2016-07-09
相关资源
最近更新 更多