404解析spring servlet

时间:2015-11-30 16:18:09

标签: java spring spring-mvc servlets

我在Eclipse中运行Tomcat 8上的Spring(4)MVC servlet。当我启动tomcat时,控制台中没有错误,并且记录了我的控制器的所有正确请求映射。如果我尝试访问localhost:8080/app/login我的控制器方法执行(通过调试检查),但我得到一个404页面,其中包含以下内容:

  

消息/app/WEB-INF/jsp/login.jsp

     

说明请求的资源不可用。

我的项目具有以下目录结构:

project-root
 |-src
 |-WebContent
    |-WEB-INF
       |-jsp
          |-login.jsp

我的配置类:

@EnableWebMvc
@Configuration
@ComponentScan(basePackages = "com.example")
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void configureViewResolvers(final ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/jsp/", ".jsp").viewClass(JstlView.class);
    }
    //Other stuff
}

控制器:

@Controller
@RequestMapping("/login")
public class AuthnRequestController {
    @RequestMapping(value = "", method = RequestMethod.GET)
    public ModelAndView getLoginPage() {
        return new ModelAndView("login");
    }
    //Other stuff
}

应用程序在过去工作得很好,但我正在调整我的工作空间/项目正在处理其他事情,而现在我又回到了它,我无法再次工作。

1 个答案:

答案 0 :(得分:1)

AFAIK,默认情况下,在maven war项目中,jsp文件应位于/src/main/resources/下。由于您在配置中提供了/WEB-INF/jsp/的jsp文件前缀,请尝试将jsp文件移动到以下位置。

/src/main/webapp/WEB-INF/jsp/

假设:

  • Web部署程序集中未提供到root/WebContent的映射。

  • Web部署程序集中存在到/src/main/webapp的映射。

  • 你的日食正在使用maven war plugin