使用 Kotlin 时 Keycloak 提供程序不起作用
Keycloak provider does not work when using Kotlin
将 Keycloak 示例身份验证提供程序(秘密问题身份验证器)从 Java
转换为 Kotlin
时, 插件不起作用更多。部署 Jar
文件时,log
会引发奇怪的错误,例如签名错误。就我而言,问题是 Kotlin 运行时库。有办法解决这个问题吗?
问题在于 Kotlin 具有依赖项(Kotlin StdLib 或 AKA Kotlin 运行时)。
尽管有很多文档和答案,但解决方案并不是通过 gradle 构建脚本下面的著名行来制作(所谓的)Fat JAR。解决依赖关系的正确方法是使用 CLI 或手动方法将它们添加为 WildFly (JBoss) 模块。
module add --name=org.jetbrains.kotlin --dependencies=org.jetbrains --resources=<path-to-jar-file>
module add --name=org.jetrains --rsources=<path-to-jar-file>
之后,我们可以在META-INF目录下的一个特殊的JBoss文件中添加jboss-deployment-structure.xml:
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.jetbrains.kotlin" />
</dependencies>
</deployment>
现在 jar 已成功部署并运行!
将 Keycloak 示例身份验证提供程序(秘密问题身份验证器)从 Java
转换为 Kotlin
时, 插件不起作用更多。部署 Jar
文件时,log
会引发奇怪的错误,例如签名错误。就我而言,问题是 Kotlin 运行时库。有办法解决这个问题吗?
问题在于 Kotlin 具有依赖项(Kotlin StdLib 或 AKA Kotlin 运行时)。 尽管有很多文档和答案,但解决方案并不是通过 gradle 构建脚本下面的著名行来制作(所谓的)Fat JAR。解决依赖关系的正确方法是使用 CLI 或手动方法将它们添加为 WildFly (JBoss) 模块。
module add --name=org.jetbrains.kotlin --dependencies=org.jetbrains --resources=<path-to-jar-file>
module add --name=org.jetrains --rsources=<path-to-jar-file>
之后,我们可以在META-INF目录下的一个特殊的JBoss文件中添加jboss-deployment-structure.xml:
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.jetbrains.kotlin" />
</dependencies>
</deployment>
现在 jar 已成功部署并运行!