【问题标题】:jboss 6 virtual directoryjboss 6 虚拟目录
【发布时间】:2011-03-14 20:40:30
【问题描述】:

我找不到在 jboss 6 上将目录添加到我的应用程序上下文的正确方法。 我会将此映射用于静态内容。有人可以帮我看看吗?

【问题讨论】:

  • 不能将目录添加到部署存档中还是不能读取存档中的文件?
  • 事实上,我在文件服务器中有静态内容,例如照片。这个文件服务器共享在 jboss 服务器中映射为一个目录......显然这个目录超出了我的应用程序上下文。所以我必须将此外部目录映射到应用程序上下文...我可以在 tomcat 6 上做得很好...但我还不能在 jboss 6 中做同样的事情。
  • 请参阅community.jboss.org/message/531424community.jboss.org/message/531424 了解类似问题,我会尝试解压缩 .war 并将目标目录(第二次(?))映射到结果的根目录或子目录目录(网络应用程序)。

标签: java jboss6.x virtual-directory


【解决方案1】:

JBoss 6 中没有更多的“虚拟目录”。显然,这在 JBoss 5 中消失了。我发现的唯一可用选项是:

  1. 在您的静态内容目录中创建一个空白的 /WEB-INF/web.xml(就像 一样),并在您的 jboss 部署目录中创建一个带有 .war 扩展名的符号链接。您也可以将包含静态内容的目录复制到部署目录,但我发现符号链接更有用。
  2. 创建一个带有 servlet 的 webapp,该 servlet 提供配置目录中的静态内容(讨论 here
  3. 如果您使用像 spring mvc 3 这样的 Web 框架,则可以使用“资源”功能为您提供内容(讨论 here

【讨论】:

  • 符号链接对我不起作用。我不得不使用外部部署。 Mybe 我的 JBoss 被配置为不遵循符号链接?
【解决方案2】:

坏消息是您只能在 JBoss 应用程序中提供静态内容。好消息是,将任何文件夹转换为应用程序文件夹非常容易。

最简单的解决方案是将所有静态内容复制到server\default\deploy\ROOT.war 目录中。

一个更复杂的解决方案如下。

  • ROOT.war 文件夹复制到您要放置的位置 静态内容。

  • ROOT.war重命名为您喜欢的任何名称,但必须以.war结尾, 例如my_static_content.war

  • 将所有静态内容放入该目录。

  • 启用外部部署到包含您的静态文件的文件夹 内容文件夹。使用JBoss 6JBoss 5 进行外部部署

  • 重启 JBoss

  • 您的内容将进入 URI http:\\localhost:8080\my_static_content\。您必须指定要提供的文件的确切名称,因为不允许列出目录。

【讨论】:

    【解决方案3】:

    this thread 帮助我在 jboss eap 5.1 上提供的外部目录中获取静态内容,而无需使用链接,也无需移动或重命名 ROOT.war 文件夹。

    请注意,您仍然需要创建一个目录结构来诱使 jboss 提供您的内容。这不像在 server.xml 文件中的 中添加 子元素那么容易。这似乎是一个 hack,但至少它有效。

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 1970-01-01
      • 2011-01-08
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多