Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[haproxy-database-ispn] Does not start in KC 22.0.5 : NoClassDefFoundError: javax/transaction/Transaction #61

Open
daviddelannoy opened this issue Oct 18, 2023 · 0 comments · May be fixed by #62

Comments

@daviddelannoy
Copy link

daviddelannoy commented Oct 18, 2023

Hi @thomasdarimont

I tested the haproxy-database-ispn and was not able to start it with KC 22.0.5
I upgraded the required lib to :

- infinispan-cachestore-jdbc-common-14.0.17.Final.jar
- infinispan-cachestore-jdbc-14.0.17.Final.jar

I am getting this NoClassDefFoundError, javax.transaction.Transaction is missing in the classpath :

 haproxy-database-ispn-acme-keycloak-1-1   | 2023-10-18 12:36:02,874 WARN  [org.infinispan.CONFIG] (keycloak-cache-init) ISPN000569: Unable to persist Infinispan internal caches as no global state enabled
haproxy-database-ispn-acme-keycloak-1-1   | 2023-10-18 12:36:03,191 ERROR [org.infinispan.CONFIG] (keycloak-cache-init) ISPN000660: Cache clientSessions start failed, stopping any running components: org.infinispan.commons.CacheConfigurationException: ISPN000659: Component ComponentWrapper{name=org.infinispan.persistence.manager.PersistenceManager, instance=org.infinispan.persistence.manager.PersistenceManagerImpl@3b639e3a, status=FAILED} failed to start
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:584)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:634)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:598)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:379)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:222)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:1009)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.cache.impl.AbstractDelegatingCache.start(AbstractDelegatingCache.java:504)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:727)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:673)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.manager.DefaultCacheManager.internalGetCache(DefaultCacheManager.java:562)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:525)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.security.actions.GetCacheAction.run(GetCacheAction.java:26)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.security.actions.GetCacheAction.run(GetCacheAction.java:14)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.security.Security.doPrivileged(Security.java:56)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.globalstate.impl.SecurityActions.doPrivileged(SecurityActions.java:30)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.globalstate.impl.SecurityActions.getCache(SecurityActions.java:39)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start(GlobalConfigurationManagerImpl.java:114)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.globalstate.impl.CorePackageImpl$2.start(CorePackageImpl.java:61)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.globalstate.impl.CorePackageImpl$2.start(CorePackageImpl.java:48)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:807)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:379)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:252)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.manager.DefaultCacheManager.internalStart(DefaultCacheManager.java:779)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.manager.DefaultCacheManager.start(DefaultCacheManager.java:747)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:411)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.keycloak.quarkus.runtime.storage.legacy.infinispan.CacheManagerFactory.startCacheManager(CacheManagerFactory.java:96)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.lang.Thread.run(Thread.java:833)
haproxy-database-ispn-acme-keycloak-1-1   | Caused by: java.lang.NoClassDefFoundError: javax/transaction/Transaction
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.lang.Class.privateGetPublicMethods(Class.java:3427)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.lang.Class.privateGetPublicMethods(Class.java:3433)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.lang.Class.getMethods(Class.java:2019)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.commons.util.Util.getFactoryMethod(Util.java:215)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.commons.util.Util.getInstanceStrict(Util.java:281)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.commons.util.Util.getInstance(Util.java:262)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.persistence.internal.PersistenceUtil.createStoreInstance(PersistenceUtil.java:199)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.persistence.internal.PersistenceUtil.storeFromConfiguration(PersistenceUtil.java:211)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.persistence.manager.PersistenceManagerImpl.lambda$startStoresOnly$7(PersistenceManagerImpl.java:245)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.mixed.FlowableConcatMapSingle$ConcatMapSingleSubscriber.drain(FlowableConcatMapSingle.java:214)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.mixed.FlowableConcatMapSingle$ConcatMapSingleSubscriber.request(FlowableConcatMapSingle.java:108)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber.request(BasicFuseableSubscriber.java:153)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap$MergeSubscriber.onSubscribe(FlowableFlatMap.java:115)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.subscribers.BasicFuseableSubscriber.onSubscribe(BasicFuseableSubscriber.java:67)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.mixed.FlowableConcatMapSingle$ConcatMapSingleSubscriber.onSubscribeDownstream(FlowableConcatMapSingle.java:102)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.mixed.ConcatMapXMainSubscriber.onSubscribe(ConcatMapXMainSubscriber.java:75)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.flowable.FlowableFromIterable.subscribe(FlowableFromIterable.java:69)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.flowable.FlowableFromIterable.subscribeActual(FlowableFromIterable.java:47)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15917)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.mixed.FlowableConcatMapSingle.subscribeActual(FlowableConcatMapSingle.java:59)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15917)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.flowable.FlowableDoOnEach.subscribeActual(FlowableDoOnEach.java:50)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15917)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMap.subscribeActual(FlowableFlatMap.java:51)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:15917)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.flowable.FlowableIgnoreElementsCompletable.subscribeActual(FlowableIgnoreElementsCompletable.java:34)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2859)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2859)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.completable.CompletablePeek.subscribeActual(CompletablePeek.java:51)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2859)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.internal.operators.completable.CompletableUsing.subscribeActual(CompletableUsing.java:83)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Completable.subscribe(Completable.java:2859)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.reactivex.rxjava3.core.Completable.blockingAwait(Completable.java:1467)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.persistence.manager.PersistenceManagerImpl.start(PersistenceManagerImpl.java:193)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.persistence.manager.CorePackageImpl$2.start(CorePackageImpl.java:69)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.persistence.manager.CorePackageImpl$2.start(CorePackageImpl.java:48)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:616)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:607)
haproxy-database-ispn-acme-keycloak-1-1   |     at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:576)
haproxy-database-ispn-acme-keycloak-1-1   |     ... 48 more
haproxy-database-ispn-acme-keycloak-1-1   | Caused by: java.lang.ClassNotFoundException: javax.transaction.Transaction
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
haproxy-database-ispn-acme-keycloak-1-1   |     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:115)
haproxy-database-ispn-acme-keycloak-1-1   |     at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:65)
haproxy-database-ispn-acme-keycloak-1-1   |     ... 90 more

By adding jboss-transaction-api_1.3_spec-2.0.0.Final.jar to /opt/keycloak/providers it is starting well ...

This legacy module has been added, commented, 6 months ago in this commit in keycloak model/infinispan/pom.xml : keycloak/keycloak@e505021#diff-dc488bb7a875a02bbd7a053e652b01f572f2c556c90878f7db76fa2cd51ed8c2R66

I thought that it should be replaced with jakarta.transaction-api but it does not start with it.

What's your opinion on this problem ? I have pushed a branch here with the jboss-transaction-api_1.3_spec-2.0.0.Final.jar dependency : daviddelannoy@aa252fe

thanks !

@daviddelannoy daviddelannoy changed the title [haproxy-database-ispn] Does not start in KC 22.0.4 : NoClassDefFoundError: javax/transaction/Transaction [haproxy-database-ispn] Does not start in KC 22.0.5 : NoClassDefFoundError: javax/transaction/Transaction Nov 17, 2023
daviddelannoy added a commit to daviddelannoy/keycloak-project-example that referenced this issue Nov 17, 2023
@daviddelannoy daviddelannoy linked a pull request Nov 17, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant