Прослушиватель событий Keycloak SPI перестает работать после обновления keycloak с 23 до 24JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Прослушиватель событий Keycloak SPI перестает работать после обновления keycloak с 23 до 24

Сообщение Anonymous »

Я перехожу на keycloak 24, и теперь, после того как я переключился с master relam на myDemo-realm в консоли администратора keycloak, у меня появляется ошибка в журналах keycloak. SPI использовался только в myDemo-realm.
Я меняю зависимости в pom.xml для версии 24 и пересобираю файл .jar.

Код: Выделить всё

        
org.keycloak
keycloak-core
24.0.4


org.keycloak
keycloak-server-spi
24.0.4


org.keycloak
keycloak-server-spi-private
24.0.4


org.keycloak
keycloak-admin-client
24.0.4

ошибка в журнале:

Код: Выделить всё

ERROR [org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-1) Uncaught server error: java.util.ServiceConfigurationError: jakarta.ws.rs.client.ClientBuilder:  org.jboss.resteasy.client.jaxrs.internal.ResteasyClientBuilderImpl Unable to get public no-arg constructor     at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586)   at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:679)     at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1240)    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273)   at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)     at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)     at jakarta.ws.rs.client.FactoryFinder.lambda$findFirstService$1(FactoryFinder.java:178)     at jakarta.ws.rs.client.FactoryFinder.findFirstService(FactoryFinder.java:187)  at jakarta.ws.rs.client.FactoryFinder.find(FactoryFinder.java:114)  at jakarta.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:62)     at sk.myProject.project.keycloak.KeycloakEventListenerProvider.(KeycloakEventListenerProvider.java:61)    at sk.myProject.project.keycloak.KeycloakEventListenerProviderFactory.create(KeycloakEventListenerProviderFactory.java:29)  at sk.myProject.project.keycloak.KeycloakEventListenerProviderFactory.create(KeycloakEventListenerProviderFactory.java:13)  at org.keycloak.services.DefaultKeycloakSession.getProvider(DefaultKeycloakSession.java:195)    at org.keycloak.models.KeycloakBeanProducer_ProducerMethod_getKeycloakSession_XoSEUTXOsE3bpqXlGMAykCiECUM_ClientProxy.getProvider(Unknown Source)   at org.keycloak.services.resources.admin.AdminEventBuilder.lambda$addListeners$0(AdminEventBuilder.java:136)    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)  at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707)   at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)  at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)   at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)  at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)  at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)     at org.keycloak.services.resources.admin.AdminEventBuilder.addListeners(AdminEventBuilder.java:135)     at org.keycloak.services.resources.admin.AdminEventBuilder.(AdminEventBuilder.java:63)    at org.keycloak.services.resources.admin.AdminEventBuilder.(AdminEventBuilder.java:56)    at org.keycloak.services.resources.admin.RealmsAdminResource.getRealmAdmin(RealmsAdminResource.java:206)    at org.keycloak.services.resources.admin.RealmsAdminResource$quarkusrestinvoker$getRealmAdmin_a79304c5f6b93bb8957395d5fd7a2ca5d97a5ae2.invoke(Unknown Source)   at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)  at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)  at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)   at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)  at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)     at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)     at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)    at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.NoClassDefFoundError:  org/jboss/resteasy/core/providerfactory/ResteasyProviderFactoryImpl   at java.base/java.lang.ClassLoader.defineClass1(Native Method)  at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)   at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:105)  at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:65)   at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373)    at java.base/java.lang.Class.getConstructor0(Class.java:3578)   at java.base/java.lang.Class.getConstructor(Class.java:2271)    at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:666)  at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:663)  at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)     at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:674)     ... 38 more Caused by: java.lang.ClassNotFoundException: org.jboss.resteasy.core.providerfactory.ResteasyProviderFactoryImpl    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)  at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)   at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)  at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:115)  at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:65)   ... 50 more
Строка кода, в которой возникает ошибка ( KeycloakEventListenerProvider.java:61 из журнала), где я пытаюсь создать ClientBuilder.

Код: Выделить всё

import com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider;
import com.google.gson.Gson;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import lombok.extern.slf4j.Slf4j;
import org.keycloak.OAuth2Constants;
import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.KeycloakBuilder;
import org.keycloak.admin.client.resource.RealmResource;
import org.keycloak.admin.client.resource.UsersResource;
import org.keycloak.events.Event;
import org.keycloak.events.EventListenerProvider;
import org.keycloak.events.admin.AdminEvent;
import org.keycloak.events.admin.OperationType;
import org.keycloak.models.KeycloakSession;
import org.keycloak.representations.idm.UserRepresentation;
import org.springframework.util.StringUtils;

...

ClientBuilder clientBuilder = ClientBuilder.newBuilder();

clientBuilder.register(new JacksonJsonProvider());
Client client = clientBuilder.build();

keycloak = KeycloakBuilder.builder()
.serverUrl(kcBaseUrl)
.realm(kcRealmName)
.grantType(OAuth2Constants.PASSWORD)
.clientId(kcClientId)
.username(kcUsername)
.password(kcPassword)
.scope("openid")
.resteasyClient(client)
.build();
}

...
Я пытаюсь запустить Keycloak SPI Event Lstener на Keycloak 24. Тот же код SPI, который я использую на своем Keycloak 23, и он работает. Теперь выдайте ошибку, связанную с «java.util.ServiceConfigurationError: jakarta.ws.rs.client.ClientBuilder: org.jboss.resteasy.client.jaxrs.internal.ResteasyClientBuilderImpl. Невозможно получить общедоступный конструктор без аргументов»

Подробнее здесь: https://stackoverflow.com/questions/790 ... m-23-to-24
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Конфигурация Keycloak User Storage SPI для хранения пароля из внешней базы данных в keycloak
    Anonymous » » в форуме JAVA
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • Конфигурация Keycloak User Storage SPI для хранения пароля из внешней базы данных в keycloak
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Как интегрировать защитник с KeyCloak SPI для регистрации конкретных событий, используя маркеры SLF4J?
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • SPI CLK не изменяется при инициализации настройки SPI.
    Anonymous » » в форуме Linux
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Hibernate: org.hibernate.service.spi.serviceexception: невозможно создать запрошенную службу [org.hibernate.engine.spi.c
    Anonymous » » в форуме JAVA
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»