下面是一个复制错误的回购程序:https://github.com/hansen-simon/keycloak-mailattachment
我试图在密钥披风中实现一个EmailSenderProvider。我遵循了以下文档:开发/主题/Providers.html
构建jar文件后,我将其复制到Dockerfile中的/opt/jboss/keycloak/modules/org/keycloak/email/provider/main/目录中,位于module.xml旁边。码头映像成功构建,但是当我运行它时,我会得到以下错误:
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
<?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:
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:
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">通知了我。它看起来像是给出了正确的模块名。这个设置有什么问题吗?
发布于 2022-09-01 12:49:52
我能够解决这个问题,方法不是将.jar文件挂载到/opt/jboss/keycloak/modules,而是安装到/opt/jboss/keycloak/standalone/deployments并删除module.xml文件。我用一个示例更新了存储库。
https://stackoverflow.com/questions/73487901
复制相似问题