我的WAR應用程序使用非Spring庫(對於JSF)。該庫使用servletContext.getResource("page.html")
進行初始化。 page.html
是在WEB-INF/lib下一個JAR內,包裝成META-INF/resources/page.html
嵌入式servlet容器在Spring Boot中不處理META-INF /資源
這時候我上部署servlet容器WAR做工精良。但是,當我將應用程序作爲可執行WAR運行時,它不起作用,因爲嵌入式servlet容器不會掃描classpath META-INF /資源。
例如,對於暗潮類路徑中的資源管理器不使用:
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;
}
時間的問題:爲什麼嵌入式servlet容器忽略META-INF/resources
?製作可執行的Servlet 3.0應用程序是一個問題。
類似的問題:
Embedded Tomcat, executable jar, ServletContext.getRealPath()
https://github.com/spring-projects/spring-boot/issues/4218
我已經使用過很多的spring引導,並且還沒有聽說過可執行文件的戰爭。我想知道這是多麼的支持。 – eis