Glassfish 3.1.2上docroot不提供静态图像

时间:2013-04-19 05:48:17

标签: java-ee jsf-2 glassfish-3

我正在尝试使用外部文件夹来存储我的Java EE 6项目的图像。我正在使用Glassfish 3.1.2。我创建了我在这篇文章中找到的sun-web.xml:

Glassfish 3 - Loading images from a static server

也包含在这里:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
<sun-web-app>
   <property name="alternatedocroot_1" value="from=/imgs/slideshow/* dir=c:/users/jonathon/desktop/images" />
   <property name="alternatedocroot_2" value="from=/imgs/feed/* dir=c:/users/jonathon/desktop/images" />
   <property name="alternatedocroot_3" value="from=/imgs/question/* dir=c:/users/jonathon/desktop/images" />
</sun-web-app>

虽然我不打算将它保留在我的桌面上,但我只是在我在服务器上使用它之前尝试测试它。在我的页面上,我使用此实现来显示图像:

<div class="item">
    <h:graphicImage value="/imgs/slideshow/${imgs}" />
</div>

但是我只得到一张空白图片。我确保目录正确(如果您没有现有目录,则在加载服务器时会出现异常)

我认为一个更明确的问题是使用外部图像文件夹的正确方法是什么,以及如果可能,您如何写入这些文件夹?

1 个答案:

答案 0 :(得分:0)

您的路径将附加from值。我们会要求您提供图片,例如c:/users/jonathon/dektop/images/imgs/slideshow*。过去对我来说也有些麻烦。希望这能让你前进。

您不需要docroot来写入此文件夹。你可以使用:

String path = new StringBuilder("c:")
    .append(File.separator)
    .append("users")
    .append(File.separator)
    .append("jonathon")
    .append(File.separator)
    .append("desktop")
    .append(File.separator)
    .append("images")
    .append(File.separator)
    .append("imgs")
    .append(File.separator)
    .append("slideshow")
    .append(File.separator)
    .append("myfile.jpg")
    .toString();
File file = new File(path);