在应用程序服务器上动态生成内容以进行下载

时间:2011-11-22 13:52:12

标签: java-ee download javabeans web

我使用应用程序服务器,例如geronimo,用于运行一些EAR / WAR应用程序。 现在我需要某种数据传输服务,但数据太大,以至于它可能不适合通过我的应用程序所基于的JMS / Queue进行传输。

一个想法是服务生成内容并将其存储在应用程序服务器的文件系统中。然后客户端可以通过HTTP下载检索内容。

问题是如何将Java EE MDB Bean中的内容存储到可通过HTTP链接访问的文件系统中。或者任何替代解决方案?

提前感谢!

1 个答案:

答案 0 :(得分:0)

如果将数据存储在本地磁盘文件系统上,那么基本上有两种方法可以通过HTTP提供数据:

  1. 创建指向根本地磁盘文件系统位置的额外webapp上下文。我不知道如何在Gernimo中执行此操作,但在Tomcat中,例如,将以下条目添加到/conf/server.xml

    <Context path="/files" docBase="/absolute/path/to/files" />
    

    这种方式可以通过http://example.com/files/whatever.ext

  2. 获得
  3. 创建一个servlet,它从磁盘获取FileInputStream并将其写入响应的OutputStream,以及一组正确的响应头。然后通过URL调用servlet,文件名为请求路径或参数。