我有一个 Java EE 应用程序,它采用 XML 并将 XSLT 应用于它以生成 HTML。此过程发生在自定义 servlet 中。这通常用于在某些网页上构建部分内容。由于实际数据已经存储为 XML,因此只在 servlet 中进行转换是有意义的。
这实际上是根据CruiseControl构建报告的方式建模的。servlet 缓存生成的 HTML 以避免每次都产生转换成本。表示 XSL 文件的 DOM 也缓存在内存中。
现在 XSLT 部署在 WAR 文件中。我们希望支持在 WAR 文件中部署的默认 XSLT,但也希望能够仅更新 XSLT 而无需重新部署整个应用程序。我希望有些人可能对解决这类问题有一些好主意。
更新
从我收到的评论中,我意识到有一些特定于服务器的方法可以做到这一点。但我希望以更通用的方式解决它。我需要确保我能够保留以下功能...
- 一旦检测到新的 XSLT,缓存 XSLT 本身(直到检测到新版本)
- 保留生成的 HTML 的缓存版本,当有新的 XSLT 时更新它们。