jboss5.x - JBoss 5.1.0 禁用 HDScanner,取消部署后重新启动不起作用

标签 jboss5.x

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

完成此操作后,我可以使用以下命令部署和取消部署 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 WARN [org.jboss.deployment.MainDeployer] (WorkerThread#0[10.21.4.61:43700]) undeploy 'file:/path/to/my.war' : package not deployed

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

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


编辑

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

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

最佳答案

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

关于jboss5.x - JBoss 5.1.0 禁用 HDScanner,取消部署后重新启动不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703051/

相关文章:

jboss - jboss/server/web/tmp/vfs-nested.tmp 目录下的大量 JAR 文件

java - 增加 MDB 实例

java - 非法状态异常 : migration from jboss 4 to jboss 5

java - 出现异常 : java. util.ServiceConfigurationError

java - 给定一个类名,如何识别它是从 JBoss AS 5.1.0 中加载的?

ssl - Java8,JBoss AS5,SSLException : "Received fatal alert: handshake_failure"

java - JBoss 日志记录 - 记录依赖项项目

JBoss 事务超时设置?

jboss5.x - 负载均衡 MySQL ndbcluster

java - 我无法设置我的 jndi.properties 来访问 Jboss 5 上的远程 EJB