0

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

Glassfish 3 - 从静态服务器加载图像

这也包括在这里:

<?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>

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

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

4

1 回答 1

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);
于 2013-04-19T05:53:23.647 回答