我有mvc控制器的springboot应用程序(映射到/
)。当这个应用程序直接从Idea(使用maven插件)执行时,一切正常。将此应用程序打包在war文件中并直接放入外部tomcat时也没有问题。但是当应用程序打包在jar文件中并像jar(java -jar fineName.jar
)一样执行时,会出现404错误(出现意外错误类型=未找到,状态= 404 /WEB-INF/pages/login.html)但是login.html文件存在。你能解释一下这个错误的原因吗?
@Controller
public class LoginController {
@Autowired
LoginService loginService;
@RequestMapping(value ={"/", "/login"}, method = RequestMethod.GET)
public String login() {
return loginService.getLinkStartPage();
}
@RequestMapping(value="/logout", method = RequestMethod.GET)
public String logout(HttpServletRequest request, HttpServletResponse response) {
loginService.logout(request,response);
return "login";
}
}
MVC配置
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter{
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".html");
return resolver;
}
loginService.getLinkStartPage()
- 只需根据安全授权返回html文件的名称。
springboot - 1.5.1.RELEASE
在服务器端有例外: