2016-05-04 2 views
1

Когда я запускаю свой веб-проект maven (+ Spring), у меня есть его Я не знаю, как это исправить.описание Сервер обнаружил внутреннюю ошибку(), которая помешала ему выполнить этот запрос.

HTTP Status 500 - 


type Exception report 

message 

description The server encountered an internal error() that prevented it from fulfilling this request. 

exception 
javax.servlet.ServletException: Servlet.init() for servlet DispatcherServlet threw exception 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    java.lang.Thread.run(Thread.java:745) 



root cause 
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/DispatcherServlet-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/DispatcherServlet-servlet.xml] 
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344) 
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) 
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) 
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) 
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) 
    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:129) 
    org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:609) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:510) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    java.lang.Thread.run(Thread.java:745) 



root cause 
java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/DispatcherServlet-servlet.xml] 
    org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141) 
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330) 
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) 
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) 
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) 
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) 
    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:129) 
    org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:609) 
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:510) 
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634) 
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682) 
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
    javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    java.lang.Thread.run(Thread.java:745) 

примечание Полный трассировки стека первопричины доступна в/6.0.29 журналах Apache Tomcat.

мой pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.gemicle</groupId> 
    <artifactId>webtimetable</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <build> 
     <finalName>root</finalName> 
     <plugins> 
<!--   <plugin> --> 
<!--   <groupId>org.apache.maven.plugins</groupId> --> 
<!--   <artifactId>maven-eclipse-plugin</artifactId> --> 
<!--   <version>2.9</version> --> 
<!--   <configuration> --> 
<!--     Always download and attach dependencies source code --> 
<!--    <downloadSources>true</downloadSources> --> 
<!--    <downloadJavadocs>false</downloadJavadocs> --> 
<!--    Avoid type mvn eclipse:eclipse -Dwtpversion=2.0 --> 
<!--    <wtpversion>2.0</wtpversion> --> 
<!--   </configuration> --> 
<!--   </plugin> --> 

<!--   Set JDK Compiler Level --> 
      <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.5.1</version> 
       <configuration> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.3.7.v20160115</version> 
       <configuration> 
        <war>${basedir}/webtimetable/root.war</war> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 
    <properties> 
     <java.version>1.7</java.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <!-- <maven.compiler.source>1.7</maven.compiler.source> --> 
    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- add new --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 
      <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>4.2.4.RELEASE</version> 
     </dependency> 

     <!-- JSON --> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.4.1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-annotations</artifactId> 
      <version>2.4.1</version> 
     </dependency> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-core</artifactId> 
      <version>2.7.1</version> 
     </dependency> 
<!--  <dependency> --> 
<!--   <groupId>org.json</groupId> --> 
<!--   <artifactId>json</artifactId> --> 
<!--   <version>20151123</version> --> 
<!--  </dependency> --> 

     <!-- Validation --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.3.2.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>com.mashape.unirest</groupId> 
      <artifactId>unirest-java</artifactId> 
      <version>1.4.9</version> 
     </dependency> 

     <!-- JSP --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <!-- Titles --> 
     <dependency> 
      <groupId>org.apache.tiles</groupId> 
      <artifactId>tiles-servlet</artifactId> 
      <version>3.0.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tiles</groupId> 
      <artifactId>tiles-jsp</artifactId> 
      <version>3.0.5</version> 
     </dependency> 
<!--  <dependency> --> 
<!--   <groupId>com.paypal.sdk</groupId> --> 
<!--   <artifactId>paypal-core</artifactId> --> 
<!--   <version>1.4.3</version> --> 
<!--  </dependency> --> 
<!--  <dependency> --> 
<!--   <groupId>commons-digester</groupId> --> 
<!--   <artifactId>commons-digester</artifactId> --> 
<!--   <version>2.1</version> --> 
<!--  </dependency> --> 
    </dependencies> 
</project> 

Мой Servlet

<?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-4.0.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
    <mvc:annotation-driven /> 
    <context:component-scan base-package="com.gemicle.webtimetable" /> 

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

web.xml

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

    <!-- <welcome-file-list> --> 
    <!-- <welcome-file>welcome.jsp</welcome-file> --> 
    <!-- </welcome-file-list> --> 
    <servlet> 
     <servlet-name>DispatcherServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <!-- <init-param> --> 
     <!-- <param-name>contextConfigLocation</param-name> --> 
     <!-- <param-value>/WEB-INF/spring/webcontext/DispatcherServlet-context.xml</param-value> --> 
     <!-- </init-param> --> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>DispatcherServlet</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/webcontext/DispatcherServlet-context.xml</param-value> 
    </context-param> 

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

WEB-INF

----- весна

----------- webcontext

--------------------- DispetcherServlet XML

---- -web.xml

----- просмотров

---------- здесь файлы JSP

и мне контроллер

@Controller 
public class HomeController { 
    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public String welcome(ModelMap model) { 

     model.addAttribute("greeting", "Welcome to Web Store!"); 
     model.addAttribute("tagline", "The one and only amazing webstore"); 
     return "welcome"; 
    } 

JSP приветствовать файл

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

<link rel="stylesheet" 
    href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"> 
<title>title</title> 
</head> 
<body> 

    <section> 
     <div class="jumbotron"> 
      <div class="container"> 
       <h1>${greeting}</h1> 
       <p>${tagline}</p> 
      </div> 
     </div> 
    </section> 
</body> 
</html> 

ответ

0

С Spring Web MVC есть два приложения контексты, которые создаются. Первый - это корневой контекст приложения, который должен содержать вашу бизнес-логику, например, daos и т. Д. Этот контекст приложения создается ContextLoaderListener. По умолчанию имя файла должно быть /WEB-INF/applicationContext.xml. Вы можете настроить это, указав контекстный параметр contextConfigLocation, как и вы.

Второй - это контекст приложения диспетчера, содержащий ваши конкретные веб-компоненты, например контроллеры. По умолчанию его местоположение равно /WEB-INF/[servle-name]-servlet.xml, где [имя сервлета] - это имя вашего DispatcherServlet в web.xml. Вы также можете настроить это с помощью init-param contextConfigLocation (часть, которую вы закомментировали в вашем web.xml)

В вашем случае у вас нет корневого контекста приложения, поэтому вы можете удалить ContextLoaderListener и его контекстный параметр. Альтернативно создайте контекст корневого приложения, даже если он может быть пустым (в основном, вероятно, вам нужно будет добавить дополнительные компоненты)

Затем раскомментируйте init-param для DispatcherServlet, чтобы использовать Dispatcher-context.xml вместо стандартного Dispatcher- servlet.xml

Решение 1

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

    <!-- <welcome-file-list> --> 
    <!-- <welcome-file>welcome.jsp</welcome-file> --> 
    <!-- </welcome-file-list> --> 
    <servlet> 
     <servlet-name>DispatcherServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
     <param-name>contextConfigLocation</param-name> --> 
     <param-value>/WEB-INF/spring/webcontext/DispatcherServlet-context.xml</param-value> 
     </init-param> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>DispatcherServlet</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

</web-app> 

Решение 2

Создать файл/WEB-INF/весна/webcontext/Application-контекст.xml (может быть пустым)

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

    <!-- <welcome-file-list> --> 
    <!-- <welcome-file>welcome.jsp</welcome-file> --> 
    <!-- </welcome-file-list> --> 
    <servlet> 
     <servlet-name>DispatcherServlet</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/webcontext/DispatcherServlet-context.xml</param-value> 
     </init-param>  </servlet> 
    <servlet-mapping> 
     <servlet-name>DispatcherServlet</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/webcontext/Application-context.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
</web-app> 
Смежные вопросы

 Смежные вопросы