You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wildfly 26.1.2.Final使用elytron-tool遇ModuleNotFoundException求解决

WildFly 26.1.2.Final中elytron-tool模块找不到的解决办法

问题背景

我们用Gradle的Galleon插件配置WildFly 26.1.2.Final,想通过elytron-tool管理密钥库,gradle.properties配置如下:

galleonVersion = 5.0.5.Final
wildflyVersion = 26.1.2.Final
wildflyLayers = cdi,jaxrs,microprofile-config,logging,datasources,mail,h2-datasource,core-management,web-console,core-tools

(注:原配置里的core-toolstwild是笔误,修正为core-tools)

把elytron和elytron-tool加到wildflyLayers后,运行elytron-tool.sh/elytron-tool.bat还是报模块找不到:

org.jboss.modules.ModuleNotFoundException: org.wildfly.security.elytron-tool
at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:301)
at org.jboss.modules.Main.main(Main.java:358)

已知WildFly 27修复了这个问题,但暂时不想升级,需要WildFly 26的解决办法。

可行解决方案

WildFly 26的核心Galleon feature pack没把elytron-tool包含在标准layers里,直接加layers名称没用,试试下面几种方法:

方法1:用Galleon安装elytron-tool专属feature pack

在Gradle构建脚本里,添加WildFly Elytron Tool的feature pack依赖,让Galleon自动安装该模块:

  1. 先在依赖块里添加:
dependencies {
    wildfly 'org.wildfly.security:wildfly-elytron-tool-galleon-pack:26.1.2.Final'
}
  1. 然后在Provision任务配置中,引入这个feature pack并包含对应的layer:
tasks.withType(org.wildfly.galleon.plugin.ProvisionTask) {
    provision {
        featurePack location: "org.wildfly:wildfly-galleon-pack:${wildflyVersion}"
        featurePack location: "org.wildfly.security:wildfly-elytron-tool-galleon-pack:${wildflyVersion}"
        layers = wildflyLayers.split(',') + ['elytron-tool']
    }
}

重新执行Provision任务后,elytron-tool模块会被正确部署,脚本就能正常运行了。

方法2:手动添加elytron-tool模块

不想改Gradle配置的话,手动把模块放到WildFly的modules目录:

  1. 从Maven仓库下载wildfly-elytron-tool-26.1.2.Final.jar
  2. 在WildFly安装目录的modules下创建路径:org/wildfly/security/elytron-tool/main
  3. 把下载的jar包放进这个目录,再创建module.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<module name="org.wildfly.security.elytron-tool" xmlns="urn:jboss:module:1.9">
    <resources>
        <resource-root path="wildfly-elytron-tool-26.1.2.Final.jar"/>
    </resources>
    <dependencies>
        <module name="org.wildfly.security.elytron"/>
        <module name="org.jboss.logging"/>
        <module name="javax.api"/>
        <module name="org.jboss.modules"/>
    </dependencies>
</module>

做完这些,重新运行elytron-tool脚本就没问题了。

方法3:直接用Java命令调用jar包

临时使用的话,不用脚本,直接用Java命令运行jar:

java -jar /path/to/wildfly-elytron-tool-26.1.2.Final.jar [你的命令参数]

或者用WildFly的模块加载器运行:

./bin/jboss-modules.sh -mp modules org.wildfly.security.elytron-tool [你的命令参数]

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:31:33