JBoss 5.1.0禁用HDScanner,取消部署后重启不起作用

时间:2011-04-18 12:43:30

标签: jboss5.x

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

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

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':package未部署

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

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


修改

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

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

1 个答案:

答案 0 :(得分:2)

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