首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"ModuleLoadException:错误加载模块“在密钥披风中的实现

"ModuleLoadException:错误加载模块“在密钥披风中的实现
EN

Stack Overflow用户
提问于 2022-08-25 12:54:24
回答 1查看 183关注 0票数 0

下面是一个复制错误的回购程序:https://github.com/hansen-simon/keycloak-mailattachment

我试图在密钥披风中实现一个EmailSenderProvider。我遵循了以下文档:开发/主题/Providers.html

构建jar文件后,我将其复制到Dockerfile中的/opt/jboss/keycloak/modules/org/keycloak/email/provider/main/目录中,位于module.xml旁边。码头映像成功构建,但是当我运行它时,我会得到以下错误:

代码语言:javascript
复制
12:39:35,357 FATAL [org.keycloak.services] (ServerService Thread Pool -- 62) Error during startup: java.lang.RuntimeException: org.jboss.modules.ModuleLoadException: Error loading module from /opt/jboss/keycloak/modules/org/keycloak/email/provider/main/module.xml
        at org.keycloak.keycloak-wildfly-extensions@15.0.2//org.keycloak.provider.wildfly.ModuleProviderLoaderFactory.create(ModuleProviderLoaderFactory.java:45)

...

        at org.jboss.threads@2.4.0.Final//org.jboss.threads.JBossThread.run(JBossThread.java:513)
Caused by: org.jboss.modules.ModuleLoadException: Error loading module from /opt/jboss/keycloak/modules/org/keycloak/email/provider/main/module.xml
        at org.jboss.modules.xml.ModuleXmlParser.parseModuleXml(ModuleXmlParser.java:337)

...

        ... 42 more
Caused by: org.jboss.modules.xml.XmlPullParserException: Invalid/mismatched module name (expected org.keycloak.email) (position: START_TAG seen ...?>\n<module xmlns="urn:jboss:module:1.1" name="org.keycloak.email">... @2:64) 
        at org.jboss.modules.xml.ModuleXmlParser.invalidModuleName(ModuleXmlParser.java:374)
...

The module.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.email">
    <resources>
        <resource-root path="email-0.0.1-SNAPSHOT.jar" />
    </resources>
    <dependencies>
        <module name="javax.activation.api" />
        <module name="javax.mail.api" />
        <module name="org.jboss.logging" />
        <module name="org.keycloak.keycloak-common" />
        <module name="org.keycloak.keycloak-core" />
        <module name="org.keycloak.keycloak-server-spi" />
        <module name="org.keycloak.keycloak-server-spi-private" />
        <module name="org.keycloak.keycloak-services" />
    </dependencies>
</module>

Dockerfile:

代码语言:javascript
复制
FROM quay.io/keycloak/keycloak:15.0.2

COPY mailattachment/target/*.jar /opt/jboss/keycloak/modules/org/keycloak/email/provider/main/
COPY mailattachment/module.xml /opt/jboss/keycloak/modules/org/keycloak/email/provider/main/

COPY mailattachment/startup-scripts/* /opt/jboss/startup-scripts/

EXPOSE 8080
ENTRYPOINT [ "/opt/jboss/tools/docker-entrypoint.sh" ]

CMD ["-b", "0.0.0.0"]

启动脚本中的脚本dir:

代码语言:javascript
复制
embed-server --server-config=standalone-ha.xml --std-out=echo

batch

/subsystem=keycloak-server/:list-add(name=providers,value="module:org.keycloak.email.provider")

/subsystem=keycloak-server/spi=emailSender:add
/subsystem=keycloak-server/spi=emailSender/provider=default:add(enabled=true)
/subsystem=keycloak-server/spi=emailSender:write-attribute(name=default-provider, value=email)

run-batch

stop-embedded-server

错误日志行Invalid/mismatched module name (expected org.keycloak.email) ... name="org.keycloak.email">通知了我。它看起来像是给出了正确的模块名。这个设置有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-01 12:49:52

我能够解决这个问题,方法不是将.jar文件挂载到/opt/jboss/keycloak/modules,而是安装到/opt/jboss/keycloak/standalone/deployments并删除module.xml文件。我用一个示例更新了存储库

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73487901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档