XMLを受け取り、それにXSLTを適用してHTMLを生成するJavaEEアプリケーションがあります。このプロセスは、カスタムサーブレットで発生します。これは通常、特定のWebページにコンテンツの一部を作成するために使用されます。実際のデータはすでにXMLとして保存されているため、サーブレットで変換を行うのは理にかなっています。
これは実際には、 CruiseControlがレポートを作成する方法をモデルにしています。サーブレットは生成されたHTMLをキャッシュして、毎回変換のコストが発生しないようにします。XSLファイルを表すDOMもメモリにキャッシュされます。
現在、XSLTはWARファイル内にデプロイされています。WARファイルにデプロイされたデフォルトのXSLTをサポートするだけでなく、アプリ全体を再デプロイせずにXSLTのみを更新する機能もサポートしたいと思います。この種の問題を解決するための良いアイデアを持っている人がいることを願っています。
アップデート
私が受け取ったコメントから、これを行うためのサーバー固有の方法がいくつかあることがわかりました。しかし、私はそれをより一般的な方法で解決したいと思っています。次の機能を維持できることを確認する必要があります...
- 新しいXSLTが検出されたら、XSLT自体をキャッシュします(新しいバージョンが検出されるまで)
- 生成されたHTMLのキャッシュされたバージョンを保持し、新しいXSLTがあるときにそれらを更新します。