HTTP状态404 –找不到tomcat spring

时间:2018-12-23 20:39:53

标签: java spring tomcat

我开始学习spring并且无法赢得tomcat服务器。

This is file tree

这是web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">    
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

this is dispatcher-servlet.xml

和MainController

package com.burmistrov;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MainController {`

    @GetMapping("/")
    public String view() {
        return "hello";
    }}

And default settings of Tomcat

任何人都可以帮助我,我在哪里犯了错误?

3 个答案:

答案 0 :(得分:0)

您正在访问未在程序中映射的页面,因此服务器不知道该怎么做并发送404。您将必须映射正在访问的页面。

答案 1 :(得分:0)

在/ WEB-INF / jsp目录下添加hello.jsp或在MainController.view上添加Annotation @ResponseBody,如下所示,

package com.burmistrov;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MainController {`

@GetMapping("/")
@ResponseBody
public String view() {
    return "hello";
}}

希望这会有所帮助。

答案 2 :(得分:0)

在您的web.xml中,您没有配置dispatcher-servlet.xml。这就是为什么您会出错。

将此代码添加到您的web.xml

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            WEB-INF/dispatcher-servlet.xml
        </param-value>
    </context-param>
   <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>