jsf / glassfish托管静态文件

时间:2011-12-30 10:51:25

标签: jsf java-ee glassfish

我正在使用Glassfish / JSF。是否可以从磁盘托管静态文件?我需要生成xml文件并将其保存在磁盘上的某个位置,以便它可以作为http://domain.com/file.xml

使用

我需要与apache / php类似的功能,我可以将文件保存到/ public_html,它可以自动使用。

3 个答案:

答案 0 :(得分:1)

我认为你应该试试Virtual directory。基本上,您只需要创建一个映射到硬盘上文件夹的虚拟目录。之后,您可以根据需要直接从URL访问该文件夹中的所有文件。

答案 1 :(得分:0)

虚拟目录的想法很好,但通过定义自定义servlet,通常可以很容易地解决这个问题。根本不需要额外的组件。

<servlet>
  <servlet-name>Mah Servlet</servlet-name>
  <servlet-class>org.mahorg.MahServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Mah Servlet</servlet-name>
  <url-pattern>*.xml</url-pattern>
</servlet-mapping>

然后你只需编写一个可以执行以下操作的servlet ...

1. Determine filename and folder location looking at request context path
2. Get bytes of file using easy tool like Apache Commons IO.
3. Put bytes into response stream
4. Set response header to XML mime type
5. Response complete

不要忘记强制性的安全问题和文件权限等......

答案 2 :(得分:0)

域文件夹中有一个名为docroot的文件夹:domain-dir/docroot。无论你放在那里,都将作为静态内容发布。