ServletContext.getRealPath(“pictures”)返回tmp目录? JBoss的

时间:2011-01-20 21:53:45

标签: java servlets jboss seam

我用seamgen(还有gui)创建了一个应用程序,我在应用程序的根目录中创建了一个文件夹“pictures”,用于存储个人资料图像。

当我评估ServletContext.getRealPath(“pictures”)时,它会返回一个临时目录。

  

d:\ Dizertatie \爪哇\ jboss-5.1.0.GA \服务器\默认\ TMP \ 5c4o02s-hw5k2v-gj5pc3oq -1- gj632njx-AL \ RaceCatalog.war \图片\ 1295555156562.jpg

我也尝试使用生成的img文件夹,它仍然是一样的。

如何获得相对路径

PS。我想用

2 个答案:

答案 0 :(得分:2)

正如您在评论中提到的那样 - 您需要这样才能渲染图像。为此目的使用此方法是错误的。

默认情况下,

<h:graphicsImage>使用应用程序上下文根的相对路径。无需额外步骤。

至于JBoss在提取war文件时的行为 - 看起来很奇怪,但它并没有违反规范。可以随意提取未爆炸的战争档案。

更新:如果这是关于爆炸性战争(由你),那么随意发动一个错误。但这并不重要 - 你不应该在webapp中存储图片。配置外部位置并将其保存在那里。否则,您可能会在重新部署时丢失图片。

答案 1 :(得分:1)

是。行为是正确的。有关getRealPath()方法的描述,请参阅javadoc:Read here

我怀疑你正在寻找一种不同的方法,但你没有充分描述你希望得到什么样的路径。