micronaut-security: java.lang.ClassNotFoundException: io.micronaut.caffeine.cache.SSLA with Micronaut session and GraalVM
Some changes did in 1.3.x for micronaut-cache doesn’t play nice with GraalVM.
Steps to Reproduce
git clone https://github.com/micronaut-graal-tests/micronaut-security-session-graal
cd micronaut-security-session-graal
- Use GraalVM
./build-native-image.sh
./security-session-graal
Expected Behaviour
The app should start. The application works with Micronaut 1.2.x.
Actual Behaviour
14:25:01.091 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Error instantiating bean of type [io.micronaut.session.binder.SessionArgumentBinder]
Message: io.micronaut.caffeine.cache.SSLA
Path Taken: new NettyHttpServer(NettyHttpServerConfiguration serverConfiguration,ApplicationContext applicationContext,Router router,[RequestArgumentSatisfier requestArgumentSatisfier],MediaTypeCodecRegistry mediaTypeCodecRegistry,NettyCustomizableResponseTypeHandlerRegistry customizableResponseTypeHandlerRegistry,StaticResourceResolver resourceResolver,ExecutorService ioExecutor,ThreadFactory threadFactory,ExecutorSelector executorSelector,ServerSslBuilder serverSslBuilder,List outboundHandlers,EventLoopGroupFactory eventLoopGroupFactory,HttpCompressionStrategy httpCompressionStrategy,HttpContentProcessorResolver httpContentProcessorResolver) --> new NettyRequestArgumentSatisfier([RequestBinderRegistry requestBinderRegistry]) --> new DefaultRequestBinderRegistry(ConversionService conversionService,[List binders]) --> new SessionArgumentBinder([SessionStore sessionStore])
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [io.micronaut.session.binder.SessionArgumentBinder]
Message: io.micronaut.caffeine.cache.SSLA
Path Taken: new NettyHttpServer(NettyHttpServerConfiguration serverConfiguration,ApplicationContext applicationContext,Router router,[RequestArgumentSatisfier requestArgumentSatisfier],MediaTypeCodecRegistry mediaTypeCodecRegistry,NettyCustomizableResponseTypeHandlerRegistry customizableResponseTypeHandlerRegistry,StaticResourceResolver resourceResolver,ExecutorService ioExecutor,ThreadFactory threadFactory,ExecutorSelector executorSelector,ServerSslBuilder serverSslBuilder,List outboundHandlers,EventLoopGroupFactory eventLoopGroupFactory,HttpCompressionStrategy httpCompressionStrategy,HttpContentProcessorResolver httpContentProcessorResolver) --> new NettyRequestArgumentSatisfier([RequestBinderRegistry requestBinderRegistry]) --> new DefaultRequestBinderRegistry(ConversionService conversionService,[List binders]) --> new SessionArgumentBinder([SessionStore sessionStore])
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1719)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
at io.micronaut.session.binder.$SessionArgumentBinderDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
at io.micronaut.context.DefaultBeanContext.addCandidateToList(DefaultBeanContext.java:2723)
at io.micronaut.context.DefaultBeanContext.getBeansOfTypeInternal(DefaultBeanContext.java:2635)
at io.micronaut.context.DefaultBeanContext.getBeansOfType(DefaultBeanContext.java:924)
at io.micronaut.context.AbstractBeanDefinition.lambda$getBeansOfTypeForConstructorArgument$9(AbstractBeanDefinition.java:1123)
at io.micronaut.context.AbstractBeanDefinition.resolveBeanWithGenericsFromConstructorArgument(AbstractBeanDefinition.java:1761)
at io.micronaut.context.AbstractBeanDefinition.getBeansOfTypeForConstructorArgument(AbstractBeanDefinition.java:1118)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:984)
at io.micronaut.http.bind.$DefaultRequestBinderRegistryDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
at io.micronaut.http.server.netty.$NettyRequestArgumentSatisfierDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
at io.micronaut.context.AbstractBeanDefinition.getBeanForConstructorArgument(AbstractBeanDefinition.java:1007)
at io.micronaut.http.server.netty.$NettyHttpServerDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1115)
at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:628)
at io.micronaut.context.BeanLocator.findBean(BeanLocator.java:135)
at io.micronaut.runtime.Micronaut.start(Micronaut.java:66)
at io.micronaut.runtime.Micronaut.run(Micronaut.java:294)
at io.micronaut.runtime.Micronaut.run(Micronaut.java:280)
at example.micronaut.Application.main(Application.java:8)
Caused by: java.lang.IllegalStateException: io.micronaut.caffeine.cache.SSLA
at io.micronaut.caffeine.cache.LocalCacheFactory.newBoundedLocalCache(LocalCacheFactory.java:101)
at io.micronaut.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3392)
at io.micronaut.caffeine.cache.BoundedLocalCache$BoundedLocalManualCache.<init>(BoundedLocalCache.java:3388)
at io.micronaut.caffeine.cache.Caffeine.build(Caffeine.java:988)
at io.micronaut.session.InMemorySessionStore.newSessionCache(InMemorySessionStore.java:129)
at io.micronaut.session.InMemorySessionStore.<init>(InMemorySessionStore.java:62)
at io.micronaut.session.$InMemorySessionStoreDefinition.build(Unknown Source)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
... 40 common frames omitted
Caused by: java.lang.ClassNotFoundException: io.micronaut.caffeine.cache.SSLA
at com.oracle.svm.core.hub.ClassForNameSupport.forName(ClassForNameSupport.java:60)
at java.lang.ClassLoader.loadClass(ClassLoader.java:229)
at io.micronaut.caffeine.cache.LocalCacheFactory.newBoundedLocalCache(LocalCacheFactory.java:95)
... 47 common frames omitted
Environment Information
- Operating System: Linux Mint
- Micronaut Version: 1.3.4.BUILD-SNAPSHOT
- JDK Version: 1.8
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 16 (13 by maintainers)
@welovelain I got the “same” error when I tried to use micronaut-kubernetes with graalVM
I fixed it with this:
Also it would be great to add this settings to micronaut-kubernetes to make it easier to use.