【问题标题】:Eclipse & Tomcat Error: HTTP Status 404 – Not Found: [closed]Eclipse 和 Tomcat 错误:HTTP 状态 404 – 未找到:[关闭]
【发布时间】:2019-03-12 17:54:08
【问题描述】:

描述:源服务器没有找到目标资源的当前表示或不愿意透露存在。

这是我的 HomeController 类:

package com.luv2code.springdemo.mvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping("/")
    public String showPage() {
        return "main-menu";
    }
}

这是我的 Web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">

    <display-name>spring-mvc-demo</display-name>

    <!-- Spring MVC Configs -->

    <!-- Step 1: Configure Spring MVC Dispatcher Servlet -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc-demo-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Step 2: Set up URL mapping for Spring MVC Dispatcher Servlet -->
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

这是 spring-mvc-demo-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.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- Step 3: Add support for component scanning -->
    <context:component-scan base-package="com.luv2code.springdemo" />

    <!-- Step 4: Add support for conversion, formatting and validation support -->
    <mvc:annotation-driven/>

    <!-- Step 5: Define Spring MVC view resolver -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

这是 main-menu.jsp 文件

<!DOCTYPE>
<html>

<body>

<h2>Spring MVC Demo - Home Page</h2>

<hr>

<a href="showForm">Hello World form</a>
</body>

</html>

这是目录图片

Directory Image in Eclipse

PS:我已经尝试了所有其他选项,包括切换位置、清理目录和重新安装 tomcat 和 eclipse,但所有这些都不适用于我。甚至,我将 IDE 从 Eclipse 更改为 IntelliJ想法,但问题仍然存在。

【问题讨论】:

  • 对于什么 URI
  • 这里是网址localhost:8080/…
  • 你能张贴你的项目目录结构的图片吗?
  • @JaiDixit 亲爱的我已经添加了目录的图片...请查看已编辑的问题。

标签: java spring eclipse spring-mvc tomcat8


【解决方案1】:

由于您的 servlet 名称是 'dispatcher',因此 Spring 在您的 WEB-INF 文件夹的默认位置查找文件 dispatcher-servlet.xml。 尝试将 spring-mvc-demo-servlet.xml 重命名为 dispatcher-servlet.xml 即可。希望对您有所帮助,谢谢

【讨论】:

    【解决方案2】:

    确保您的包名称一致。确认您为控制器创建的包与 spring-servlet xml 文件中定义的相同(为组件扫描定义)。 和 清除 Tomcat 缓存 这通常是缓存的缓存问题。

    以下是清除 Eclipse 缓存和 Tomcat 缓存的一些步骤。

    1. 在 Eclipse 的服务器选项卡中,停止 Tomcat 服务器

    2. 右键单击服务器并选择“清理...”

    3. 再次右键单击服务器并选择“Clean Tomcat Work Directory...”

    4. 在 Eclipse 中,选择顶级菜单选项,Project > Clean ...

    5. 确保您的项目已被选中,然后单击“确定”

    6. 重启 Eclipse

    【讨论】:

    • 它对我有用——事实上是我的演讲。
    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 2020-07-31
    • 2014-05-12
    • 2018-05-06
    • 1970-01-01
    • 2020-03-20
    • 2012-04-22
    • 2019-04-11
    相关资源
    最近更新 更多