如何在JBoss AS 7中部署war文件?

15

我下载了JBoss应用服务器5并成功地部署了一个war文件。我复制粘贴了Hello.war,它有一个简单的index.jsp文件。

\jboss-5.1.0.GA-jdk6\jboss-5.1.0.GA\server\default\deploy

它很好地运行了。

然而,当我在JBoss AS 7上部署war文件并运行时,它没有执行。

jboss-as-7.0.0.Final\jboss-as-7.0.0.Final\standalone\deployments

如何部署它?

编辑:我已经搜索过了,但是由于JBoss AS 7相对较新,无法找到相关信息。

6个回答

22
实际上,对于最新的JBOSS 7 AS,即使是归档文件,我们也需要一个.dodeploy标记来触发部署。因此,请添加一个标记以触发部署。

在我的情况下,我在同一目录中添加了一个Hello.war.deployed文件,然后一切正常。

希望这能帮助到某些人!


6
另一个选择是 <deployment-scanner auto-deploy-exploded="true"/> - Jiří Vypědřík

18

阅读文件 $AS/standalone/deployments/README.txt

  • 您有两种不同的模式:自动部署模式和手动部署模式
  • 对于手动部署模式,您必须按照其他帖子中所述放置标记文件
  • 对于自动部署模式:这是通过在 standalone.xml 配置文件中的 deployment-scanner 元素上使用 "auto-deploy" 属性完成的:

<deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir"
path="deployments" auto-deploy-zipped="true" **auto-deploy-exploded="true"**/>

9

我基于jboss deployment docs构建了以下用于部署的Ant任务:

<target name="deploy" depends="jboss.environment, buildwar">
    <!-- Build path for deployed war-file -->
    <property name="deployed.war" value="${jboss.home}/${jboss.deploy.dir}/${war.filename}" />

    <!-- remove current deployed war -->
    <delete file="${deployed.war}.deployed" failonerror="false" />
    <waitfor maxwait="10" maxwaitunit="second">
        <available file="${deployed.war}.undeployed" />
    </waitfor>
    <delete dir="${deployed.war}" />

    <!-- copy war-file -->
    <copy file="${war.filename}" todir="${jboss.home}/${jboss.deploy.dir}" />

    <!-- start deployment -->
    <echo>start deployment ...</echo>
    <touch file="${deployed.war}.dodeploy" />

    <!-- wait for deployment to complete -->
    <waitfor maxwait="10" maxwaitunit="second">
        <available file="${deployed.war}.deployed" />
    </waitfor>
    <echo>deployment ok!</echo>
</target>

${jboss.deploy.dir}被设置为standalone/deployments


3
您能否提供有关部署失败的更多信息?应用程序无法部署是否触发了.war.failed标记文件?
独立实例部署文件夹默认启用自动部署。自动部署模式通过使用一系列标记文件指示部署到运行时的操作和状态,自动化了您在手动模式下使用的相同功能。例如,您可以使用unix/linux的“touch”命令创建.war.dodeploy标记文件来告诉运行时部署应用程序。
总共有五种将应用程序部署到AS7的方法,这可能很有用。我在另一个主题中讨论过这个问题:JBoss AS7 *.dodeploy files 我倾向于使用管理控制台进行应用程序管理,但我知道管理CLI在其他用途中也非常流行。两者都与部署文件夹进程分开。尝试使用其他方法以满足您的需求。
如果您在管理指南中搜索“deploy”,则可以查看有关部署扫描器和更一般的部署部分(包括CLI)的部分:https://docs.jboss.org/author/display/AS7/Admin+Guide

1

只需将war文件复制到standalone/deployments/文件夹中,它应该会自动部署。当您的应用程序被部署时,它还会创建your_app_name.deployed文件。同时,请确保使用bin/standalone.sh脚本启动服务器。


我把内容复制粘贴到了部署文件夹,并启动了standalone.sh,但是服务器显示出现了错误,这样做没有任何用处。 - user244333
很可能缺少一些依赖项。阅读有关JBoss AS7模块和类加载的内容:https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 - Robert Balent

-2

打开控制台,导航到 bin 文件夹并运行

JBOSS_HOME/bin > stanalone.sh

一旦它启动并运行,只需将您的war文件复制粘贴到其中

standalone/deployments folder

这可能就是关于jboss 7.1的全部内容了。


3
你显然没有尝试过自己的指示。从表面上看,它们毫无意义。 - Rick-777

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接