OSGiバンドルにパッケージされたコンテンツを提供するSpring起動MVCアプリケーションがあります。 OSGiを使用する背後にある目標は、これらのコンテンツバンドルを完全に自己完結型かつホットスワップ可能にすることです。Springが古いリソースストリームを読み込まないようにする
リクエストは、URLを介してバンドルリソースにマップされます。
私が実行している問題は、同じURLで指し示される新しいものでバンドルを置き換え、古いバンドルから提供されていたリソースが要求された場合に発生します。
SpringはすでにそのURLのリソースを返しているので、キャッシュされたバンドルURLのストリームをオープンしようとします。これは、リソースが最後に変更された時点を判断する必要があります。 IOException
をスローします。
私が今までに見つけたものはすべて、Spring内部キャッシュではなく、クライアント側のキャッシュポリシーを変更することです。さらに、spring.resource.chain.caching
またはspring.resources.cache-period
を介してキャッシュを無効にしようとすると、Springはまだ変更された最後のタイムスタンプを把握しようとします。