Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee Glassfish 3.1.2上的docroot不提供静态图像_Jakarta Ee_Jsf 2_Glassfish 3 - Fatal编程技术网

Jakarta ee Glassfish 3.1.2上的docroot不提供静态图像

Jakarta ee Glassfish 3.1.2上的docroot不提供静态图像,jakarta-ee,jsf-2,glassfish-3,Jakarta Ee,Jsf 2,Glassfish 3,我正在尝试使用一个外部文件夹来存储JavaEE6项目的图像。我用的是Glassfish 3.1.2。我创建了从本文中找到的sun-web.xml: 这也包括在这里: <?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:/

我正在尝试使用一个外部文件夹来存储JavaEE6项目的图像。我用的是Glassfish 3.1.2。我创建了从本文中找到的sun-web.xml:

这也包括在这里:

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

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


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

您的路径将附加
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);

如果我有一个glassfish-web.xml,它应该在那里吗?我刚刚意识到这可能也是一个问题。我想是的,我在加载时注意到一个错误,它说sun-web.xml被忽略了。当我还是孩子的时候,我把它放在glassfish-web.xml中,它工作得很好。你是怎么写的呢?这取决于你使用的是哪个版本的Glassfish
sunweb.xml
获取sun支持的Glassfish版本<代码>glassfishweb.xml用于开源版本。对于开源版本,您也不应该使用
的括号。在开源版本中有一个类似的名字(不知道,会搜索一点)。@user1760412:更新了我的答案,以便
写入
-bit。所以我不需要在保存时用一些奇特的方法获取外部位置?只是普通的文件路径?我对Java EE相当陌生。
value=“/imgs/slideshow/${imgs}”
-->
value=“imgs/slideshow/${imgs}”