【发布时间】: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