3

我需要使用这个 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`或映射项目外的虚拟目录?

4

2 回答 2

6

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

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

dir值是您的alternatedocroot的基本目录,因此您必须将为该值指定的完整路径放入alternatedocroot 的基本目录中。因此,在我的情况下,真正的结构是/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/

于 2016-01-08T13:09:53.310 回答
0

谢谢你很棒,我的朋友。它适用于我,在我的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 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>
于 2017-03-08T03:41:24.860 回答