在使用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
原因是尝试添加已存在的模块会导致错误。
答案 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