【问题标题】:JBoss Application Server redeployJBoss 应用服务器重新部署
【发布时间】:2010-12-10 11:25:15
【问题描述】:

我需要一个 Windows shell 脚本来重新部署我的 .ear 文件。我写了一个:

net stop "JBAS50SVC"
copy /y O:\TEMP\app.ear C:\jboss-4.2.3.GA\server\default\deploy\app.ear
net start "JBAS50SVC"

但问题是,当我尝试停止 JBoss 服务时,它并没有完全卸载自己(我的建议),所以当我启动它时,JBoss 中没有部署任何应用程序。

【问题讨论】:

    标签: jboss


    【解决方案1】:

    你可能想检查一下JBoss community wiki,无疑有比批处理文件更简单、更可靠的方法。

    停止服务器不应取消应用程序的部署 - 这没有多大意义。

    【讨论】:

    • 我停止服务只是为了复制我的新 .ear 文件。我不想使用自动部署功能,因为在这种情况下,JBoss 会在一两个月后变得非常缓慢。
    【解决方案2】:

    您只需复制/重命名 EAR 文件即可部署目录。 JBoss 会自动为您处理重新部署。

    【讨论】:

      【解决方案3】:

      如前所述,默认情况下,jboss 会自动将您复制的所有内容部署到部署目录中。

      如果不是,请检查您是否正在使用不自动部署 ear 文件的虚拟主机。

      <Host name="vhost2" autoDeploy="false" .... />
      

      除此之外,我觉得这是一个完全不同的错误,因为 jboss 会为您负责部署。请检查日志文件以了解您的应用程序的启动错误。

      【讨论】:

      • 是的,jboss 会自动部署文件,但是当我使用自动部署功能并且 JBoss 已经工作了一个月或更长时间时,它变得非常慢。
      【解决方案4】:

      通常在 jboss 中重新部署一个独立于 ear 中的应用程序只需要更换 ear。如果应用程序有更多内容(例如必须进入 jboss lib 目录的类),则可能需要重新启动。

      就如何重新启动而言,这取决于您使用什么来启动 jboss 作为服务。一些服务启动器在启动 jvm 后实际上并不控制它,因此重新启动服务只是启动第二个实例。您可以使用 JBOSS_HOME/bin 目录 (shutdown.bat) 中的关闭脚本关闭 jboss,然后部署并重新启动服务。执行此操作时请务必暂停,因为关闭命令会发出关闭请求,服务器可能仍在运行。

      【讨论】:

        【解决方案5】:

        您提到当您使用 autoDeploy 并保持服务器运行一个月或更长时间时,JBoss 变得非常慢。这可能是因为您的永久代内存会随着时间的推移而填满。见this related question

        我认为最好按照其他建议使用自动部署功能,并定期重新启动整个服务器以清除 PermGen。有几种方法可以跟踪 PermGen 的利用率;我将以下内容添加到 run.conf 中的 JAVA_OPTS:

        -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -Xloggc:$LOGDIR/gc.log
        

        【讨论】:

        • 谢谢!似乎这是唯一可行的解​​决方案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        • 2015-03-05
        • 2013-08-23
        • 2011-07-29
        • 2015-01-16
        • 2011-05-14
        相关资源
        最近更新 更多