私はmvcコントローラ(/
にマップされています)でspringbootアプリケーションを持っています。このアプリケーションをIdeaから直接実行すると(mavenプラグインが使用されています)、すべて正常です。このアプリケーションがwarファイルにパッケージ化され、外部のtomcatに直接置かれても問題はありません。しかし、アプリケーションがjarファイルにパッケージ化されてjar(java -jar fineName.jar
)のように実行されると、404エラーが表示されます(予期しないエラータイプ=見つからない、status = 404 /WEB-INF/pages/login.html)が、login.htmlファイル存在する。このエラーの原因は何か説明できますか?埋め込みTomcatがコントローラを見つけることができません
@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ファイルの名前を返します。
サーバー側の例外を提供できますか? – ThrawnCA