NoClassDefFoundError: org/keycloak/KeycloakPrincipal

Val*_*han 2 keycloak wildfly-10

在 WildFly 10 中部署 ear 时出现以下异常。安装了 Apapter,因此 ear 中不包含 jars,也没有设置依赖项。

由:java.lang.NoClassDefFoundError:org/keycloak/KeycloakPrincipal 由:java.lang.ClassNotFoundException:org.keycloak.KeycloakPrincipal from [Module \"deployment.app.ear.appEJB.jar:main\" from Service Module Loader ]"}, "WFLYCTL0412:未安装所需的服务:" => [ "jboss.undertow.deployment.default-server.default-host./App" ]

这个问题只出现在 appEJB.jar 中的类中。appWEB.war 中的类没有依赖问题。这是我的子系统配置:

             <subsystem xmlns="urn:jboss:domain:keycloak:1.1">
                <secure-deployment name="appWEB.war">
                    <realm>demo</realm>
                    <resource>app</resource>
                    <use-resource-role-mappings>true</use-resource-role-mappings>
                    <public-client>true</public-client>
                    <auth-server-url>http://localhost:8180/auth</auth-server-url>
                    <ssl-required>EXTERNAL</ssl-required>
                    <principal-attribute>preferred_username</principal-attribute>
                </secure-deployment>
            </subsystem>
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以在子系统中配置耳朵部署,以便 ejb.jar 也隐式获取 Keycloak 库?

Val*_*han 5

当我在 jboss 部署描述符中为 ejb.jar 设置 Keycloak 模块依赖项时已解决问题。

<module name="org.keycloak.keycloak-adapter-spi"/>
<module name="org.keycloak.keycloak-adapter-core"/>
<module name="org.keycloak.keycloak-common"/>
<module name="org.keycloak.keycloak-core"/>
Run Code Online (Sandbox Code Playgroud)