Spring MVC - HTTP Status 500 - Servlet.init () для исключительной ситуации, вызванной сервлетом Spring - PullRequest
1 голос
/ 25 сентября 2019

Spring MVC - HTTP-статус 500 - Servlet.init () для исключения сервлета loginDispacher Когда я выполняю операцию CRUD с использованием tile.xml, я получаю следующее исключение. Я не могу понять, где я ошибся.тип Отчет об исключении

spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="  
        http://www.springframework.org/schema/beans  
        http://www.springframework.org/schema/beans/spring-beans.xsd  
        http://www.springframework.org/schema/context  
        http://www.springframework.org/schema/context/spring-context.xsd  
        http://www.springframework.org/schema/mvc  
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">  
        <context:component-scan base-package="com.animo.controller"></context:component-scan>    

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">    
<property name="prefix" value="/WEB-INF/views/pages/main/"></property>    
<property name="suffix" value=".jsp"></property>    
</bean>    

<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">    
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>    
<property name="url" value="jdbc:mysql://localhost:3306/sunny"></property>    
<property name="username" value="root"></property>    
<property name="password" value="root"></property>    
</bean>    

<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">    
<property name="dataSource" ref="ds"></property>    
</bean>    

<bean id="dao" class="com.animo.springjdbc.dao.EmpDao">    
<property name="template" ref="jt"></property>    
</bean>        
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  
  <display-name>SpringMVC</display-name>
  <welcome-file-list>
  <welcome-file>home.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>    
    </web-app>  
    EmpDao.java
    package com.animo.springjdbc.controller;

    import java.util.List;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    import com.animo.springjdbc.beans.Emp;
    import com.animo.springjdbc.dao.EmpDao;



    @Controller
    public class EmpController
    {
        @Autowired
        EmpDao dao;

        @RequestMapping("/")
        public String home(){
            return "empform";
        }


         @RequestMapping("/empform")    
            public String showform(Model m){    
                m.addAttribute("command", new Emp());  
                return "empform";   
            }    
            /*It saves object into database. The @ModelAttribute puts request data  
             *  into model object. You need to mention RequestMethod.POST method   
             *  because default request is GET*/    
            @RequestMapping(value="/save",method = RequestMethod.POST)    
            public String save(@ModelAttribute("emp") Emp emp){    
                dao.save(emp);    
                return "redirect:/viewemp";//will redirect to viewemp request mapping    
            }    
            /* It provides list of employees in model object */    
            @RequestMapping("/viewemp")    
            public String viewemp(Model m){    
                List<Emp> list=dao.getEmployees(); `  
                m.addAttribute("list",list);  
                return "viewemp";    
            }  

            /* It displays object data into form for the given id.   
             * The @PathVariable puts URL data into variable.*/    
            @RequestMapping(value="/editemp/{id}")    
            public String edit(@PathVariable int id, Model m){    
                Emp emp=dao.getEmpById(id);    
                m.addAttribute("command",emp);  
                return "empeditform";    
            }    

            /* It updates model object. */    
            @RequestMapping(value="/editsave",method = RequestMethod.POST)    
            public String editsave(@ModelAttribute("emp") Emp emp){    
                System.out.println(dao.update(emp));    
                return "redirect:/viewemp";    
            }    
            /* It deletes record for the given id in URL and redirects to /viewemp */    
            @RequestMapping(value="/deleteemp/{id}",method = RequestMethod.GET)    
            public String delete(@PathVariable int id){    
                dao.delete(id);    
                return "redirect:/viewemp";    
            }  
    }

сообщение Servlet.init () для исключения выброса пружины сервлета:

description Сервер обнаружил внутреннюю ошибку, которая не позволила ему выполнить этот запрос.

исключение

javax.servlet.ServletException: Servlet.init () для выброса пружины сервлета исключение org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:504) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:620) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:502) орг.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1132) org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:684) org.apache.tomcat.util.net.Procket(NioEndpoint.java:1539) org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run (NioEndpoint.java:1495) java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) org.apache.tomcat.util.threads.TaskThread $ WrappingunTaskThread.java:61) java.lang.Thread.run (Неизвестный источник), первопричинаservlet.xml];вложенное исключение: java.io.FileNotFoundException: не удалось открыть ресурс ServletContext [/WEB-INF/spring-servlet.xml] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeaderDraj.info)beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java:302) org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefanans.RefAbstractBeanDefinitionReader.java:209) org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:180) org.springframework.web.wext.wef.Web.Web.Web.Web.WDweb.context.support.XmlWebApplicationContext.loadBeanDefinitions (XmlWebApplicationContext.java:94) org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory (AbstractRefreshableApplicationContext.java:130) org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory (AbstractApplicationContext.java:537) org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:451) org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext (FrameworkServlet.java:696) org.springframework.web.servlet.FrameworkServlet..java: 710) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext (FrameworkServlet.java:587) org.springframework.web.servlet..init (HttpServletBean.java:169) javax.servlet.GenericServlet.init (GenericServlet.Java: 158) org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:504)org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:620) org.apache.catalina.conap.serter.Java: 502) org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1132) org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:684) org.apache.tomcat.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1539) org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run (NioEndpoint.java:1495) java.util.concurrent.ThreadPoolExecutor.runWorktil) неизвестный (неизвестный).concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) коренная причина java.lang.Thread.run (неизвестный источник)

java.io.FileNotFoundException: не удалось открыть ресурс ServletContext [/WEB-INF/spring-servlet.xml] org.springframework.web.context.support.ServletContextResource.getInputStream (ServletContextResource.java:140) org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java:328) org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java: 302) org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:174) org.springframework.beans.factory.support.AbstractBeanDefjefactory.support.AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:180) org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions (XmlWebApplicationContext.java:125) org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions (XmlWebApplicationContext.Java: 94) org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory (AbstractRefreshableApplicationContext.java:130) org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory (AbstractApplicationContext.java:537) org.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext (FrameworkServlet.java:696) org.springframework.web.servlet.org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext (FrameworkServlet.java:587) org.springframework.web.servlet.Java: 169) javax.servlet.GenericServlet.init (GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:504) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.inava .20) (Аннотация)apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:502) org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1132) org.apache.coyote.AbstractProtocolProjПроцесс (684) org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1539) org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run (NioEndpoint.java:1495) java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник)org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) java.lang.Thread.run (неизвестный источник) note Примечание Полная трассировка стека основной причины доступна в Apache Tomcat / 8.0.47 logs.

Я попытался устранить ошибку, сохранив spring-servlet.xml в папке views в папке spring

...