如何使用Glassfish从JSF应用程序提供静态网页

时间:2012-05-22 19:03:14

标签: jsf glassfish-3

我有一个在Glassfish 3.1.1下运行的JSF 2.0应用程序,我需要提供物理上位于我的部署WAR文件时创建的应用程序根目录的静态网页。我找到了各种引用(例如this onethis one)来使用标记来定义备用docroot,例如

<property name="alternatedocroot_1" value="from=/myimages/* dir=/images"/>

添加到sun-web.xml(我认为这意味着Glassfish 3.1.1中的glassfish-web.xml)。但是,我似乎无法让它工作。就我而言,我认为问题在于glassfish-web.xml根本没有为备用docroot定义足够的上下文来表达任何含义:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
  <property name="alternatedocroot_1" value="from=/myimages/* dir=/images"/>
</glassfish-web-app>

我的应用程序定义的内容似乎在web.xml中比glassfish-web.xml更多。我是否可能需要在那里放一些东西来引用备用docroot?

1 个答案:

答案 0 :(得分:5)

这个确切的配置需要一个/images/myimages文件夹,该文件夹相对于运行Web服务器JVM的同一磁盘的绝对根目录。然后foo.png中的文件http://localhost:8080/contextname/myimages/foo.png可用于{{} 1}}。

围绕此设置的常见错误是from属性被解释为URL中的上下文路径,而不是dir位置中的实际子文件夹。但事实并非如此。

如果您在Windows环境中运行Glassfish,则需要在dir中指定磁盘字母,以及dir=C:/images