当前位置: 首页 > 知识库问答 >
问题:

Spring Web应用程序在tomcat-7.0.37上给出404错误

端木令
2023-03-14

我制作了Spring web应用程序示例项目。我做了所有的基本配置,基于java的配置和servlet 3.0web.xml.但在所有这些配置后,当我打网址它给我404错误。会有什么问题。有人能帮帮我吗?

网状物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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    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>SpringPracs</display-name>
    <!-- <welcome-file-list> -->
    <!-- <welcome-file>/jspfiles/index.jsp</welcome-file> -->
    <!-- </welcome-file-list> -->

    <servlet>
        <servlet-name>home</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextClass</param-name>
            <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext
            </param-value>
        </init-param>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>home.practise.configuration.SpringConfigs</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <servlet-mapping>
            <servlet-name>home</servlet-name>
            <url-pattern>/practise/*</url-pattern>
        </servlet-mapping>

    </servlet>
</web-app>

配置java类:

package home.practise.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@ComponentScan(basePackages = "home.practise.application")
@EnableWebMvc
@PropertySource("classpath:practise.properties")
public class SpringConfigs {
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
        internalResourceViewResolver.setPrefix("/jspfiles/");
        internalResourceViewResolver.setSuffix(".jsp");
        return internalResourceViewResolver;
    }
}

控制器:

package home.practise.application;

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

@Controller
@RequestMapping("homeController")
public class HomeController {
    @RequestMapping("homePage.ht")
    public ModelAndView takeMeToHomePage(){
        ModelAndView modelAndView = new ModelAndView("index");
        return modelAndView;
    }
}

当我试图访问这个网址

http://localhost:8080/SpringPracs/practise/homeController/homePage.ht

它给我404错误。虽然当我直接访问jsp页面时,它显示该页面。

共有1个答案

程城
2023-03-14

首先,当Spring参考手册中的所有示例使用以/开头的绝对URL时,使用相对URL。我认为它可以工作,但帮你自己一个忙,并遵循Spring的例子...

但实际问题是您将SpringDispatcherServlet映射到了/practice/*。这是完全正确的,但是您还必须声明您的控制器以响应/practice/

@Controller
@RequestMapping("/practise/homeController")
public class HomeController {
    @RequestMapping("/homePage.ht")
    public ModelAndView takeMeToHomePage(){
    ...
    }
}

编辑:

或者,您可以将控制器映射到/homeController,并将dispatcher servlet映射到/

 类似资料:
  • [见底部更新]我试图通过Tomcat启动Spring Web应用程序,但是当我在浏览器中输入urlhttp://localhost:8080/demo-mvc/时,我收到了404错误和一条消息“请求的资源[/demo-mvc/]不可用”。起初,我试图通过NetBeans部署应用程序,它说部署成功,但是在浏览器启动时,我收到了404错误。我检查了Tomcat/webapp目录,不知为什么没有找到应用

  • 我在Spring MVC中开发了一个应用程序,当我直接从eclipse通过run as->run On server运行它时,它工作得很好。 但是现在我想要将war部署到Tomcat文件夹并从那里运行它。我已经对此做了更改,war正在正确地部署到所需的tomcat文件夹中,但当我启动tomcat服务器并在浏览器中访问应用程序url时,它会给我404错误。服务器正在启动,没有任何异常。 下面是项目结

  • 我使用和以及开发了一个Java web应用程序。我的应用程序在本地pc上运行,没有任何错误。 但是在我托管了我的应用程序之后,我无法访问servlet。它给了我错误。我不习惯在我的应用程序中映射servlet。我使用了。 托管服务器使用和。 可能是什么问题?我该怎么解决这个问题? 新更新 我购买主机的地方给了我上传文件的。tomcat中没有上传文件的地方,也没有上传文件到director的地方。所

  • 刚到spring boot。已将war部署到tomcat服务器。部署后的url是-http://localhost:8080/project-0.0.1-snapshot/。它显示了welcome jsp页面并且运行良好。start按钮应该调用控制器启动项目。但url调用转到http://localhost:8080/startproject而不是http://localhost:8080/pro

  • 注意:这里有类似的问题,但没有一个解决方案对我有效。我花了几天的时间想把它弄好。 我已经将一个WAR文件部署到Tomcat,“Tomcat Web Application Manager”显示它已经启动。当我点击web应用程序“/forecaster”时,我得到一个404错误。web应用程序在从调试器(IntelliJ)运行时工作。WAR文件名为“forecaster.WAR”,我尝试过的路径是:

  • 我正在构建我的第一个struts2应用程序,并得到错误: HTTP状态404-/Struts2Beginner/Input。jsp 输入状态报告-message/Struts2Beginner/Input。jsp说明请求的资源不可用 ApacheTomcat/7.0.64 关于这个问题有很多帖子,我想我消除了两个常见问题: 我正在使用StrutsPrepareAndExecuteFilter(而不