【问题标题】:JBoss 5.1.0 disabled HDScanner, undeploying post restart doesn't workJBoss 5.1.0 禁用 HDScanner,重新启动后取消部署不起作用
【发布时间】:2011-04-18 12:43:29
【问题描述】:

我在 JBoss 5.1.0 中禁用了 HDScanner bean(通过删除 JBOSS_HOME/deploy/hdscanner-jboss-beans.xml),因此我必须通过 Twiddle 对正在运行的实例进行所有部署(在部署目录中找到的应用程序会在启动时自动部署)。

完成此操作后,我可以使用以下命令部署和取消部署战争:

twiddle.sh -s localhost invoke "jboss.system:service=MainDeployer" deploy "file:/path/to/my.war"

twiddle.sh -s localhost invoke "jboss.system:service=MainDeployer" undeploy "file:/path/to/my.war"

这很好用。

但是,如果我在部署和取消部署之间重新启动 JBoss,当我尝试使用 twiddle 取消部署应用程序时,应用程序仍处于部署状态并显示 JBoss 日志:

2011-04-18 14:30:41,318 WARN [org.jboss.deployment.MainDeployer] (WorkerThread#0[10.21.4.61:43700]) 取消部署'file:/path/to/my.war':包未部署

我做错了什么,期待一些不可能的事情,还是这是 JBoss 中的错误?

如果我做错了什么,在随后重新启动的 JBoss 实例上取消部署已使用 twiddle 部署的应用程序的正确方法是什么?


编辑

不看 JBoss 的源代码,在我看来,启动时部署的应用程序与通过 Twiddle 部署的应用程序在不同的地方进行管理。即,如果应用程序在启动时部署,则通过 Twiddle 访问的机制不知道它,因此会出现“未部署包”错误。

那么,有没有办法通过 Twiddle 访问这个其他部署管理器,这样启动时存在的应用程序仍然可以取消部署?

【问题讨论】:

    标签: jboss5.x


    【解决方案1】:

    我已经对此进行了大量测试,基本上在启动时发现的应用程序(正确地)被认为是 JBoss“核心”的一部分,因此作为启动过程的一部分自动部署。这适用于诸如 jmx-console 之类的东西,因此也适用于其他 .wars。无论是通过设计还是通过后果,这些在启动期间自动部署的资源都无法由twiddle 调用管理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      相关资源
      最近更新 更多