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