在使用CLI将模块添加到JBoss之前有没有办法检查?

时间:2014-03-18 11:00:01

标签: jboss command-line-interface

在使用JBoss CLI调用添加之前,有没有办法检查模块是否已经添加?

e.g。

module add --name=org.mysql --resources=/home/abc/drivers/mysql/MySQL5.jar



# Want to do similar check for module add
if (outcome != success) of /subsystem=datasources/jdbc-driver=org.mysql:read-resource
   # Add it...
end-if

原因是尝试添加已存在的模块会导致错误。

4 个答案:

答案 0 :(得分:5)

“添加”和“删除”只有两个选项。它们在“if”语句中设置时会失败,因此据我所知,无法检查模块的存在。如果模块存在并且执行“添加”则失败,如果我们尝试删除不存在的模块,则会发生同样的情况。所以最后我创建了两个脚本,一个用于添加模块,另一个用于删除它们。您可以在此处查看“module”命令文档:cli command to add/remove AS modules

答案 1 :(得分:4)

模式下,您可以这样做。

以下是检查模块存在的方法:

if (outcome != success) of /host=master/core-service=module-loading/:list-resource-loader-paths(module=your.module.name)
    echo install your.module.name ...   
    module add --name=your.module.name --dependencies=.. --resources=....jar
else 
    echo module your.module.name already installed
end-if

答案 2 :(得分:1)

您可能想要使用 try-catch 语句:

try
module add --name=org.mysql --resources=/home/abc/drivers/mysql/MySQL5.jar
catch
end-try

或者如果你想覆盖它...

try
module remove --name=org.mysql
catch
end-try
module add --name=org.mysql --resources=/home/abc/drivers/mysql/MySQL5.jar

答案 3 :(得分:0)

Wildfly 将为您安装的每个模块在 wildfly-24.0.0.Final\modules 中创建子文件夹。因此,如果您知道手头模块的命名空间定义,则可以检查相应的文件夹是否存在,例如对于 JDBC:

wildfly-24.0.0.Final\modules\com\oracle\jdbc