keycloak-config-cli
keycloak-config-cli copied to clipboard
Parallel import: ClassNotFoundException: org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl
Current Behavior
When I add --import.parallel=true
argument, the keycloak-config-cli fails right at the start.
Command example:
java -jar keycloak-config-cli-22.0.4.jar --import.cache.enabled=false --import.parallel=true \
--keycloak.url='http://localhost:8080' \
--keycloak.user='admin' \
--keycloak.password='admin' \
--import.files.locations='./config/*' \
--import.var-substitution.enabled='true'
Output:
2024-07-18T13:02:36.198+03:00 INFO 22864 --- [ main] d.a.k.config.KeycloakConfigRunner : keycloak-config-cli ran in 00:00.985.
2024-07-18T13:02:36.200+03:00 INFO 22864 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger :
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-07-18T13:02:36.219+03:00 ERROR 22864 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:540)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:567)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:670)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
at de.adorsys.keycloak.config.service.ClientScopeImportService.createOrUpdateClientScopes(ClientScopeImportService.java:173)
at de.adorsys.keycloak.config.service.ClientScopeImportService.doImport(ClientScopeImportService.java:65)
at de.adorsys.keycloak.config.service.RealmImportService.configureRealm(RealmImportService.java:200)
at de.adorsys.keycloak.config.service.RealmImportService.updateRealm(RealmImportService.java:196)
at de.adorsys.keycloak.config.service.RealmImportService.updateRealmIfNecessary(RealmImportService.java:154)
at de.adorsys.keycloak.config.service.RealmImportService.doImport(RealmImportService.java:145)
at de.adorsys.keycloak.config.KeycloakConfigRunner.run(KeycloakConfigRunner.java:79)
at org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:790)
at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83)
at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60)
at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:789)
at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:341)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
at de.adorsys.keycloak.config.KeycloakConfigApplication.main(KeycloakConfigApplication.java:35)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)
at org.springframework.boot.loader.launch.PropertiesLauncher.main(PropertiesLauncher.java:574)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl
at org.jboss.resteasy.client.jaxrs.ProxyBuilder.builder(ProxyBuilder.java:36)
at org.jboss.resteasy.client.jaxrs.internal.ClientWebTarget.createProxyBuilder(ClientWebTarget.java:99)
at org.jboss.resteasy.client.jaxrs.internal.ClientWebTarget.proxy(ClientWebTarget.java:87)
at org.keycloak.admin.client.spi.ResteasyClientClassicProvider.targetProxy(ResteasyClientClassicProvider.java:48)
at org.keycloak.admin.client.Keycloak.realms(Keycloak.java:142)
at de.adorsys.keycloak.config.repository.RealmRepository.getResource(RealmRepository.java:56)
at de.adorsys.keycloak.config.repository.ClientScopeRepository.searchByName(ClientScopeRepository.java:161)
at de.adorsys.keycloak.config.service.ClientScopeImportService.createOrUpdateClientScope(ClientScopeImportService.java:219)
at de.adorsys.keycloak.config.service.ClientScopeImportService.lambda$createOrUpdateClientScopes$0(ClientScopeImportService.java:171)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: java.lang.ClassNotFoundException: org.jboss.resteasy.client.jaxrs.internal.proxy.ProxyBuilderImpl
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:526)
at org.jboss.resteasy.client.jaxrs.ProxyBuilder.builder(ProxyBuilder.java:32)
... 18 common frames omitted
Expected Behavior
Successfully import resources in parallel.
Steps To Reproduce
1. Download `keycloak-config-cli-22.0.4.jar` from the latest v6.1.5 release page on GitHub
2. Run the tool with `--import.parallel=true`
3. See the error
Environment
- Keycloak Version: 22.0.11.redhat-00001
- keycloak-config-cli Version: v6.1.5
- Java Version: 21
Anything else?
No response