【问题标题】:spring mvc no xml configuration 404 errorspring mvc没有xml配置404错误
【发布时间】:2020-09-29 03:25:21
【问题描述】:

我正在尝试开发一个没有 XML 应用程序的简单 Spring MVC。它基本上显示一个简单的主页。我在 JetBrains IDE 上使用 tomcat 进行开发,问题是当我在 tomcat 上运行它时,我看到 404 错误,这是 url http://localhost:8080/MySpringSecurityApp_war/

这是一个控制器

@Component
public class DemoController {
    @GetMapping("/")
    public String showHome(){
        return "home";
    }
}
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.luv2code.springsecurity.demo")
public class DemoAppConfig  {
    //define a bean for view resolver
    @Bean
   public ViewResolver viewResolver(){
      InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();
      viewResolver.setPrefix("/WEB-INF/view/");
      viewResolver.setSuffix(".jsp");
      return  viewResolver;
    }
}
public class MySpringMvcDispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] {DemoAppConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

这是错误日志

9-Jun-2020 13:32:07.511 WARNING [http-nio-8080-exec-1] org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI [/MySpringSecurityApp_war/] in DispatcherServlet with name 'dispatcher'
09-Jun-2020 13:32:07.604 WARNING [http-nio-8080-exec-4] org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI [/MySpringSecurityApp_war/] in DispatcherServlet with name 'dispatcher'

这也是我的项目结构

【问题讨论】:

    标签: java spring spring-boot tomcat model-view-controller


    【解决方案1】:

    如果你在你的 URL 中添加一些东西(在你的情况下基本上是在主机部分 MySpringSecurityApp_war 之后)你需要定义一个资源路径你正在调用 localhost:8080/MySpringSecurityApp_war/ 但你没有在任何地方定义资源路径所以我猜你是什么需要做的是在类级别添加@RequestMapping("/MySpringSecurityApp_war/"),或者只调用localhost:8080/而不使用任何资源路径 您也可以使用@RestController 代替@Component

    我希望它会起作用。

    【讨论】:

    • 谢谢。我注意到我需要用控制器替换组件
    猜你喜欢
    • 2016-04-19
    • 2014-10-08
    • 2019-08-21
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2023-03-19
    • 2011-10-04
    相关资源
    最近更新 更多