내 WAR 어플리케이션이 비 스프링 라이브러리 (JSF 용)를 사용합니다. 라이브러리는 servletContext.getResource("page.html")
을 사용하여 초기화됩니다. page.html
은 WEB-INF/lib의 JAR 파일에 있으며 META-INF/resources/page.html
임베디드 서블릿 컨테이너가 스프링 부트의 META-INF/resources를 처리하지 않습니다.
으로 패키지되어 있습니다. 서블릿 컨테이너에 WAR를 배포 할 때 우수한 기능을합니다. 하지만 실행 WAR로 응용 프로그램을 실행할 때 포함 된 서블릿 컨테이너가 클래스 경로 META-INF/resources를 검사하지 않기 때문에 작동하지 않습니다. 물러 클래스 패스 리소스 관리자에 대한 예를 들어
사용되지 않습니다 질문에 대한private ResourceManager getDocumentRootResourceManager() {
File root = getCanonicalDocumentRoot();
if (root.isDirectory()) {
return new FileResourceManager(root, 0);
}
if (root.isFile()) {
return new JarResourceManager(root);
}
return ResourceManager.EMPTY_RESOURCE_MANAGER;
}
시간 : 임베디드 서블릿 컨테이너가 META-INF/resources
을 무시하는 이유는 무엇입니까? 실행 가능한 Servlet 3.0 애플리케이션을 만드는 것은 문제입니다.
유사 문제 :
Embedded Tomcat, executable jar, ServletContext.getRealPath()
https://github.com/spring-projects/spring-boot/issues/4218
저는 스프링 부트를 많이 사용했지만 이전에 실행 가능한 전쟁에 대해 들어 보지 못했습니다. 그게 얼마나 도움이되는지 궁금하네요. – eis