Spring Setup无法正常工作

时间:2013-05-10 12:11:31

标签: spring jsp web-applications

我无法让Spring-Web工作。

  1. 我的pom.xml依赖于spring-web和spring-webmvc。
  2. 我的web.xml有<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  3. applicationContext.xml定义了一个bean“test”
  4. 我的index.jsp尝试通过RequestContextUtils.getWebApplicationContext(request)获取Context;
  5. 但我得到了一个例外:

    java.lang.IllegalStateException: No WebApplicationContext found: not in a DispatcherServlet request?
        at org.springframework.web.servlet.support.RequestContextUtils.getWebApplicationContext(RequestContextUtils.java:83)
        at org.springframework.web.servlet.support.RequestContextUtils.getWebApplicationContext(RequestContextUtils.java:60)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:65)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        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.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        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:857)
        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:722)
    

    这是我的完整web.xml

    <?xml version="1.0"?>
    <web-app version="3.0">
      <listeners>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listeners>
    </web-app>
    

1 个答案:

答案 0 :(得分:0)

  1. 摆脱像@ Jaiwo99 sais那样的spring-mvc。没有Spring-MVC,Spring-Web很棒。
  2. 使用WebApplicationContextUtils.getWebApplicationContext(application) 代替 RequestContextUtils.getWebApplicationContext(request)