0

我有一个 java servlet,它根据请求处理数据并生成图像。可能有数百万张图像,一旦生成它们就不需要重新渲染,所以我想缓存它们并避免渲染步骤,因为它非常乏味。

我的缓存工作正常,但问题是我需要这些渲染图像在我的 Web 应用程序的部署之间持续存在,即我不能将它们写入文档库,否则它们会在重新部署时被破坏。

我一直在做的是使用 Context 的“allowLinking”属性,因为我的 Web 应用程序被部署为 war 文件(上下文位于 META-INF/context.xml 中)。这有点乏味,因为我需要在取消部署我的应用程序之前断开符号链接,否则链接中的图像会被破坏,但它似乎可以工作。

但这仅适用于 Tomcat,并且在使用 JBoss (5.1) 进行测试时,它似乎不支持符号链接,并且不允许链接到文档库之外的任何内容。我认为必须有一种更实用的方法来实现这一点,它适用于所有 Java Web 服务器。我错过了什么?

4

1 回答 1

2

您可以只配置一个 servlet 来提供来自外部目录的图像。此 servlet 只需从请求中提取图像文件名或 ID,从外部目录读取文件并将字节写入 servlet 响应的输出流(在响应中设置适当的内容类型)。

或者,您可以添加一个 Apache httpd 服务器前端,该前端将从某个外部目录提供静态图像,并将其他 URL 委托给您的 servlet 容器。

于 2011-10-18T18:35:44.907 回答