私のWARアプリケーションはSpring以外のライブラリ(JSF用)を使用します。ライブラリはservletContext.getResource("page.html")
を使用して初期化されます。 page.html
は、WEB-INF/libのJAR内にあり、META-INF/resources/page.html
埋め込みサーブレットコンテナは、SpringブートでMETA-INF /リソースを処理しません。
としてパッケージ化されています。これは、サーブレットコンテナに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
を無視しますか?実行可能なサーブレット3.0アプリケーションを作成することは問題です。
同様の問題:
Embedded Tomcat, executable jar, ServletContext.getRealPath()
https://github.com/spring-projects/spring-boot/issues/4218
私は春のブートを多く使用していますが、以前は実行可能な戦争について聞いていませんでした。それがどのようにサポートされているのだろうか。 – eis