2

我有一个在 Glassfish 3.1.1 下运行的 JSF 2.0 应用程序,我需要提供与部署 WAR 文件时创建的应用程序根目录不同物理位置的静态网页。我找到了各种参考(比如这个这个)来使用标签定义一个备用文档根,比如

<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 中更多。我是否可能需要放一些东西来引用备用文档根?

4

1 回答 1

5

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

围绕此设置的一个常见混淆是该from属性被解释为单独的 URL 中的上下文路径,而不是该dir位置中的实际子文件夹。但这不是真的。

如果您在 Windows 环境中运行 Glassfish,那么您需要dir像这样指定磁盘盘符dir=C:/images

于 2012-05-22T19:30:28.203 回答