私はいくつかの異なるリソースタイプをキャッシュするJWSアプリケーションを持っています。しかし、私は.svgイメージをキャッシュしたくありません。フレームワークは、私が設定したサーバー側のキャッシュ制御HTTPヘッダーを尊重していないようです。アプリケーションサーバー上の.svgイメージのキャッシュを防止します。
キャッシングせずに.svgイメージを読み込むことができる他の方法があるかどうか疑問に思っていました。 loadSVGDocument()
メソッドで解決策を公開していますが、私のコードは現在.svgファイルをロードするためのApache Batikを中心に構築されています。どのようなDocumentBuilderFactory
が提供するのと同様のBatikライブラリ内のnoCacheフラグを持つInputStream
を渡すソリューションはありますか?私はsetUseCachesとバティックの
DocumentLoader.loadDocument(URL url, InputStream is)
を呼び出すことができることを発見し、興味がある人々のために
public void loadSVGDocument(final String url)
{
System.out.println("THE SVG URL: " + url);
String oldURI = null;
if (svgDocument != null)
{
oldURI = svgDocument.getURL();
}
final ParsedURL newURI = new ParsedURL(oldURI, url);
String theUrl = newURI.toString();
fragmentIdentifier = newURI.getRef();
loader = new DocumentLoader(userAgent);
nextDocumentLoader = new SVGDocumentLoader(theUrl, loader);
nextDocumentLoader.setPriority(Thread.NORM_PRIORITY);
Iterator it = svgDocumentLoaderListeners.iterator();
while (it.hasNext())
{
nextDocumentLoader
.addSVGDocumentLoaderListener((SVGDocumentLoaderListener) it.next());
}
documentLoader = nextDocumentLoader;
nextDocumentLoader = null;
documentLoader.run();
}