Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringWeb应用程序在tomcat-7.0.37上出现404错误_Java_Spring_Spring Mvc_Servlets - Fatal编程技术网

Java SpringWeb应用程序在tomcat-7.0.37上出现404错误

Java SpringWeb应用程序在tomcat-7.0.37上出现404错误,java,spring,spring-mvc,servlets,Java,Spring,Spring Mvc,Servlets,我制作了SpringWeb应用程序示例项目。我使用基于java的配置和Servlet3.0web.xml完成了所有基本配置。 但是在所有这些配置之后,当我点击url时,它给了我404错误。 有什么问题吗。谁能帮帮我吗 web.xml: 斯普林普拉茨 家 org.springframework.web.servlet.DispatcherServlet 上下文类 org.springframework.web.context.support.AnnotationConfigWebApplicat

我制作了SpringWeb应用程序示例项目。我使用基于java的配置和Servlet3.0web.xml完成了所有基本配置。 但是在所有这些配置之后,当我点击url时,它给了我404错误。 有什么问题吗。谁能帮帮我吗

web.xml:


斯普林普拉茨
家
org.springframework.web.servlet.DispatcherServlet
上下文类
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
上下文配置位置
home.practice.configuration.SpringConfigs
1.
家
/实践/*
配置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;
    }
}
当我尝试访问此url时

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

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

当Spring参考手册中的所有示例都使用以
/
开头的绝对URL时,首先使用相对URL。我想它可能会起作用,但请帮自己一个忙,并遵循Spring的例子

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

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


另一种方法是,您可以将控制器映射到
/homeController
,并将DispatcherServlet映射到
/

,我也试过了。。但它仍然不起作用。还可能是什么?打开调试日志并检查服务器/Spring所说的话。@user3407459然后我认为您应该按照Sotirios的建议,准确地显示tomcat日志中的内容,显示“Mapped”{[/homeController/homePage.ht],m“Mapped”{[/homeController/homePage.ht],methods=[],params=[],headers=[],consumes=[],products=[],custom=[]}“到public org.springframework.web.servlet.ModelAndView home.practice.application.HomeController.takeMeToHomePage()@user340759不应该是这样的-你真的重新构建并重新部署了应用程序吗?我无法理解你是如何将
映射到“{[/HomeController/homePage.ht],
@RequestMapping的(“/practice/homeController”)
。至少应映射到“{[/practice/homeController/homePage.ht],。请尝试清理和构建。。。