我已经在Twiddle 5.1.0中禁用了HDScanner bean (通过删除JBOSS_HOME/deploy/hdscanner-jboss-beans.xml),因此我必须通过JBoss 5.1.0对运行中的实例执行所有部署(部署目录中的应用程序在启动时会自动部署)。
完成此操作后,我可以使用以下命令部署和取消部署war:
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警告org.jboss.deployment.MainDeployer取消部署'file:/path/to/my.war‘:包未部署
我是不是做错了什么,期望一些不可能的事情,或者这是JBoss中的一个bug?
如果我做错了什么,那么在随后重新启动的JBoss实例上取消部署应用程序的正确方法是什么?
编辑
不看JBoss的源代码,在我看来,在启动时部署的应用程序管理的位置不同于通过Twiddle部署的应用程序。如果应用程序是在启动时部署的,则通过Twiddle访问的机制不知道,因此出现了“包未部署”错误。
那么,是否有一种方法可以通过Twiddle访问另一个部署管理器,以便在启动时存在的应用程序仍然可以被取消部署?
发布于 2011-05-03 15:23:53
我在这方面做了很多测试,基本上,在启动时找到的应用程序被(正确地)认为是JBoss‘核心’的一部分,因此作为启动过程的一部分自动部署。这适用于诸如jmx-控制台之类的东西,因此也适用于其他.war。无论是通过设计还是通过结果,这些在启动期间自动部署的资源都不能由twiddle调用来管理。
https://stackoverflow.com/questions/5703051
复制相似问题