java - HTTP 状态 500 - 错误实例化 servlet 类 org.springframework.web.servlet.DispatcherServlet : Error Log while running

标签 java spring-mvc tomcat servlets server

我已经写了一个基本的 SpringMVC 代码,但是当我应该运行这个项目时我遇到了一些服务器错误(我使用的是 Tomcat 8.0 服务器),下面是我的代码

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>SpringDemo</display-name>

<servlet>
<servlet-name>spring-dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet  <!-- redirect to front controller -->
</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<url-pattern>/</url-pattern>                       <!-- maps incoming URL into DispatcherServlet -->
</servlet-mapping>

</web-app>

spring-dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"            
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
                                                                                  <!-- FrontController:it's job is to response back to client -->
    <bean id="HandlerMapping"
        class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />   <!-- HandlerMapping:Scans incoming URL pattern and maps into respective Controller -->

    <bean name="/welcome.html"
        class="com.pack1.hellocontroller.HelloController" />

      <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <property name="prefix">
            <value>/WEB-INF/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>               <!-- sends back responses to the client -->
        </property>
    </bean>

</beans>

HelloController.java

package com.pack1.hellocontroller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;  //AbstractController:basic controller class from springmvc

public class HelloController extends AbstractController{

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        ModelAndView modelandview = new ModelAndView("HelloPage");          //viewresolver name:HelloPage
        modelandview.addObject("msg", "hello, it's my first springmvc application");

        return modelandview;               //returns java object to the FrontController
    }
}

HelloPage.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>SpringMVC</h1>
<h2>${msg}</h2>

</body>
</html>

最佳答案

像这样更改您的 spring-dispatcher-servlet.xml:

<beans xmlns="http://www.springframework.org/schema/beans"            
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
                                                                                  <!-- FrontController:it's job is to response back to client -->
    <context:component-scan base-package = "com.pack1" />

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

</beans>

确保您的 jsp 文件位于 WEB-INF 文件夹中

现在在你的 Controller 中:

@Controller
@RequestMapping("/welcome")
public class HelloController{

    @RequestMapping(method=RequestMethod.GET)
    public ModelAndView welcome(){
        return new ModelAndView("HelloPage", "msg", "Hello Spring MVC Framework");
    }

}

问候,

关于java - HTTP 状态 500 - 错误实例化 servlet 类 org.springframework.web.servlet.DispatcherServlet : Error Log while running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45130576/

相关文章:

java - 作为线程启动 Activity ?

spring - 使用 Spring Boot 进行内存身份验证

spring - 使用 NamedParameterJDBCTemplate 进行插入时出现 "Invalid column type"异常

tomcat webapp 文件夹名称已更改

java - 如何禁用 mongoDB java 驱动程序日志记录?

java - 如何使用递归对 ArrayList<Integers> 求和?

java - 创建包含所有依赖项作为打包 jar 的可执行 Jar

java - spring.http.multipart.enabled 与 spring.servlet.multipart.enabled 究竟有何不同?

mysql - 使用 hibernate 和 c3p0 以及 mysql 在 Tomcat 7.x 下运行的 Java Servlet 的最佳实践

java - 在 Windows 中查看 tomcat 日志文件