【问题标题】:GlassFish 4.1 alternatedocroot, Access static contentsGlassFish 4.1 替代文档根,访问静态内容
【发布时间】:2016-04-09 05:09:55
【问题描述】:

我需要使用此 URL http://localhost:8080/static/img1.jpg 访问一些图像

图像在“/home/andrea/Documents”中,应用程序上下文是“/”。我正在使用 GlassFish 4.1.1。

在项目的 /WEB-INF 目录中,我有以下内容:(glassfish-web.xml)

<?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>
    <parameter-encoding default-charset="UTF-8" />
    <property name="alternatedocroot_1" value="from=/static/* dir=/home/andrea/Documents" />
</glassfish-web-app>

问题是,找不到文件。
我错过了什么?

是否有另一种方法来定义alternatedocroot`或映射项目外的虚拟目录?

【问题讨论】:

  • 似乎是 stackoverflow.com/questions/23617517/… 的副本。看看那里的答案是否也适用于你。
  • 尝试进入 glassfish 域的 server.log 并搜索错误消息,您将看到 glassfish 尝试查找资源的路径。我想问题可能还在于Documents 之后缺少/
  • @OndrejM 我已经尝试了更多次......不起作用......并且日志没有记录任何内容......我该怎么办?

标签: java glassfish glassfish-4.1


【解决方案1】:

我已经解决了阅读这篇文章的问题:http://glassfish.10926.n7.nabble.com/unable-to-get-working-alternate-docroots-td40978.html

不幸的是文档不是很清楚,我试着解释我是如何解决我的问题的

dir 值是您的 alternatedocroot 的基本目录,因此您必须将为 from 值指定的完整路径放入基本目录的替代文档根。因此,在我的例子中,真正的结构是 /home/andrea/Documents/static(记得在 dir 值的末尾插入“/”)。

glassfish-web.xml

<?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>
    <parameter-encoding default-charset="UTF-8" />
    <property name="alternatedocroot_1" value="from=/static/* dir=/home/andrea/Documents/" />
</glassfish-web-app>

我的迫切需要

我的迫切需要是有一个单独的目录来上传与“.war”档案分开的图像。我找到的解决方案是在 glassfish domain1 目录的 docroot 目录中插入图像

glassfish-web.xml

<?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>
    <parameter-encoding default-charset="UTF-8" />
    <property name="alternatedocroot_1" value="from=/static/* dir=./docroot/" />
</glassfish-web-app>

记住真实路径必须包含静态目录:[...]/glassfish/domains/domain1/docroot/static/

【讨论】:

    【解决方案2】:

    谢谢你,我的朋友很棒。它适用于我的 Glassfish 4.1.1。

    我的 glassfish-web.xml 中有此代码,位于 WEB-INF 下:

    <?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="">
        <context-root>/GestionProcesos</context-root>
        <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>
    </glassfish-web-app>
    

    但是现在我的 glassfish-web.xml 文件是这样的:

    <?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="">
        <context-root>/GestionProcesos</context-root>
        <class-loader delegate="true"/>
        <property name="alternatedocroot_1" value="from=/Downloads/* dir=/Users/Cristian/" />
    </glassfish-web-app>
    

    所以,要在我的 jsp 中下载一个文件:

    <a href="${pageContext.request.contextPath}/Downloads/FileName.pdf" download="FileName.pdf">Download file</a>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      相关资源
      最近更新 更多