我需要使用此网址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`或映射项目外的虚拟目录?
答案 0 :(得分:5)
我已经解决了阅读这篇文章的问题:http://glassfish.10926.n7.nabble.com/unable-to-get-working-alternate-docroots-td40978.html
不幸的是文档不是那么清楚,我试着解释我是如何解决我的问题的
dir 值是 alternatedocroot 的基本目录,因此您必须将值指定的完整路径从放入基础目录交替的根。因此,在我的情况下,真正的结构是 / home / andrea / Documents / static (请记住插入&#34; /&#34;在 dir 值的末尾)
<?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>
我的目标是有一个单独的目录来上传与&#34; .war&#34;分开的图像。存档。我发现的解决方案是将图像插入glassfish domain1目录的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>
<parameter-encoding default-charset="UTF-8" />
<property name="alternatedocroot_1" value="from=/static/* dir=./docroot/" />
</glassfish-web-app>
请记住,真实路径必须包含静态目录:[...] / glassfish / domains / domain1 / docroot / static /
答案 1 :(得分: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>