java - 找不到 WebApplicationContext : no ContextLoaderListener

标签 java spring spring-mvc

我是 Spring MVC 的新手。所以我从非常简单的 MVC 应用程序开始。在此应用程序中,我尝试提交登录表单,但出现下面提到的错误:

SEVERE: Servlet.service() for servlet [jsp] in context with path [/My-project] threw exception [An exception occurred processing JSP page /profile/logon.jsp at line 8

    5: </head>
    6: <body>
    7: <h2>USER Login</h2>
    8: <form:form method="post" action="addlogon.jsp">
    9: 
    10:     <table>
    11:     <tr>


    Stacktrace:] with root cause
    java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
        at org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext(WebApplicationContextUtils.java:81)
        at org.springframework.web.servlet.support.RequestContextUtils.getWebApplicationContext(RequestContextUtils.java:81)
        at org.springframework.web.servlet.support.RequestContext.initContext(RequestContext.java:219)
        at org.springframework.web.servlet.support.JspAwareRequestContext.initContext(JspAwareRequestContext.java:74)
        at org.springframework.web.servlet.support.JspAwareRequestContext.<init>(JspAwareRequestContext.java:48)
        at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:75)
        at org.apache.jsp.profile.logon_jsp._jspx_meth_form_005fform_005f0(logon_jsp.java:110)
        at org.apache.jsp.profile.logon_jsp._jspService(logon_jsp.java:79)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1815)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

下面是我的代码详细信息:

web.xml:

 <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

spring-servlet.xml

<context:component-scan
    base-package="com.paradigamatic.marchent.web.controller" />
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/profile/"
      p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView"/>

Controller 类:

    @Controller
@SessionAttributes
public class LogonController  {

    @RequestMapping(value="/profile/addlogon", method = RequestMethod.POST)
    public String addlogon(@ModelAttribute("userlogon") UserLogon userlogon, BindingResult result){

        String user=userlogon.getUsername();
        String user1=userlogon.getPassword();
            return "redirect:logon.jsp";
        }

@RequestMapping(value="/profile/logon", method = RequestMethod.GET)
public ModelAndView handalRequestInternal(HttpServletRequest req,HttpServletResponse res)
{

    System.out.println("I am in controller");
    return new ModelAndView("logon", "command", new UserLogon());

}

请告诉我为什么会出现异常?任何帮助都将非常重要。提前致谢。

问候, 戈帕尔

最佳答案

您需要向 web.xml 添加上下文加载监听器:

<context-param>
    <param-name>contextConfigLocation</param-name>        
<param-value>/WEB-INF/yourApplicationContext.xml</param-value>
</context-param>

听众:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

关于java - 找不到 WebApplicationContext : no ContextLoaderListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331187/

相关文章:

java - 线程 "main"java.lang.NullPointerException 中的异常 - 程序包

java - Struts可以支持HTML5吗?

java - 在 Java 中解析 XML,其中数据位于属性旁边

java - 无法读取 Artifact 描述符 Spring Boot

java - 如何在 Spring Portlet MVC 中获取对象类型参数

Spring 转换服务 : how to convert String to List<MyType>?

java - 如何将动态文本插入 Spring MVC 错误消息中?

java - 使用 RMI 进行 Spring 依赖注入(inject)

java - Spring 4.2.3 与 Hibernate validator 5.2.2.Final 不起作用

java - 当我可以在 Spring JPA 中编写方法时为什么还需要 @Query