【问题标题】:How can I get JBoss to explode a deployed WAR file?如何让 JBoss 分解已部署的 WAR 文件?
【发布时间】:2009-01-28 11:54:54
【问题描述】:

我在 /usr/local/jboss-4.3/ 下的 Ubuntu 上运行 JBoss 4.3。我已将我的应用程序作为 WAR 文件(即 myapp.war)部署到 /usr/local/jboss-4.3/server/myserver/deploy。但是deploy文件夹下好像没有‘exploded’的/myapp目录,怎么回事?

我习惯了在 Windows 上运行的 Tomcat,所以我对 JBoss 有点陌生。当你将 WAR 部署到 Tomcat 时,这个 WAR 的物理内容将被分解到 /myapp 目录。这样就可以修改网页应用下的文件,例如配置设置等。

如何在 JBoss 中做到这一点?

【问题讨论】:

    标签: jboss web-applications


    【解决方案1】:

    您可以将 .war 内容解压缩到“myapp.war”文件夹中,JBoss 会将已部署的应用程序视为已部署的应用程序,就像它是压缩的战争一样。

    更好的是,大多数 IDE(当然是 Eclipse,但我猜其他 IDE,例如 Netbeans)允许您部署分解的包而不是压缩的 .war,允许您只更改您修改的单个文件而不是整个文件.war 包

    【讨论】:

      【解决方案2】:

      这个链接很有用:

      http://community.jboss.org/wiki/DeployTipsAndBuildSampleScripts

      本文关注内容的快速总结:在 JBoss 中构建/部署应用程序时,有很多可行的方法。这个 wiki 重点介绍了几个构建/部署场景,以及步骤和相关的构建脚本示例。涵盖以下方法:

      • 使用 JBossIDE 点/点击部署 - 适用于不喜欢 ANT 构建脚本的用户

      • Exploded EAR、JAR、SAR、WAR 部署(选项 1) - 通过消除 ANT 复制任务最大限度地提高开发效率

      • Exploded EAR、JAR、SAR、WAR 部署(选项 2) - 将 IDE 与编译、构建和部署过程分开

      • 普通 EAR、JAR、SAR、WAR 部署 - 部署压缩存档(使用集群/场部署时需要

      【讨论】:

      • 除非您链接到直接(且仅)解决问题的文章,否则对您链接的内容及其有用的原因说几句话会很有帮助。实际上,在这种情况下,摘录链接文章中最突出的点会很有好处。
      【解决方案3】:

      面临同样的问题,当我从 Eclipse 导出为 .war 文件并将其复制到(UAT 或 Prod)JBOSS Server 7.1.1 Final AS 部署目录中,然后启动 Windows JBOSS 服务 .war 文件已成功部署,但 .war 文件未解压缩或分解到部署文件夹中。

      此解决方案是将 example.war 分解文件夹(文件夹名称)复制到部署文件夹中,然后启动。并在 standalon.xml 中提到 auto-deploye-exploded=true

      【讨论】:

        【解决方案4】:

        它在 tmp 文件夹中执行此操作......

        但您可以在部署目录中分解文件,只需将其命名为“app.war”

        【讨论】:

          【解决方案5】:

          我在使用 JBoss 7 时遇到了完全相同的问题。我的 ant 脚本会将 .war 文件复制到 JBoss deployments 文件夹(jboss-as-7.1 .1.Final/standalone/deployments),但 .war 不会爆炸。 .war 可以通过管理 CLI 完美部署,因此它不是不满意的依赖项或其他任何东西。当我指示我的 Ant 战争任务不压缩战争(将属性 compress 设置为 false)时,它已解决,如下所示:

          ...
          <target name="war" depends="build">
            <mkdir dir="${build.dir}"/>
            <war
              compress="false"
              needxmlfile="false"
              basedir="${webroot.dir}"
              warfile="${build.dir}/${project.distname}.war">
              <exclude name="WEB-INF/${build.dir}/**"/>
              <exclude name="WEB-INF/src/**"/>
             </war>
          </target>
          

          【讨论】:

          • 这听起来像是一个 zip 压缩错误。战争仍然是一个文件,唯一的区别是它没有被压缩。
          • 如果是这种情况(即 zip 压缩错误),通过管理 CLI 进行部署是否也会失败?我不清楚为什么一个合理的解释和一个至少在一个特定情况下有效的解释,因此可能与另一个进入该线程的用户相关,值得一票否决。请注意,我发现 Ant 的战争任务中出现错误的可能性不大,至少考虑到它的使用频率。
          【解决方案6】:

          在standalone.xml 中我只看到这部分代码:

          <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
          

          我没有看到部署扫描器参数,例如:

          auto-deploy-exploded" => false,
          

          "自动部署压缩" => true, "部署超时" => 60L,

          等等。

          【讨论】:

          猜你喜欢
          • 2016-04-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-25
          • 2019-05-29
          • 2016-02-04
          • 2015-10-10
          相关资源
          最近更新 更多