Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2203

Does springDataRedis not support native-image of graalvm?

$
0
0

My project is based on spring boot 3, and my code runs without any issues under the jvm. However, when I compile and run it under Linux using grailvm, I encountered an errorThe error is as follows:

java.lang.NoClassDefFoundError: Could not initialize class io.lettuce.core.event.connection.JfrConnectionCreatedEvent        at java.base@17.0.7/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)        at java.base@17.0.7/java.lang.reflect.Constructor.newInstance(Constructor.java:480)        at io.lettuce.core.event.jfr.JfrEventRecorder.createEvent(JfrEventRecorder.java:108)        at io.lettuce.core.event.jfr.JfrEventRecorder.record(JfrEventRecorder.java:48)        at io.lettuce.core.AbstractRedisClient.initializeChannelAsync(AbstractRedisClient.java:398)        at io.lettuce.core.RedisClient.connectStatefulAsync(RedisClient.java:325)        at io.lettuce.core.RedisClient.connectStandaloneAsync(RedisClient.java:287)        at io.lettuce.core.RedisClient.connect(RedisClient.java:216)        at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:112)        at java.base@17.0.7/java.util.Optional.orElseGet(Optional.java:364)        at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:112)        at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.lambda$getConnection$0(LettucePoolingConnectionProvider.java:93)        at io.lettuce.core.support.ConnectionPoolSupport$RedisPooledObjectFactory.create(ConnectionPoolSupport.java:211)        at io.lettuce.core.support.ConnectionPoolSupport$RedisPooledObjectFactory.create(ConnectionPoolSupport.java:201)        at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:70)        at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:571)        at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:298)        at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:223)        at io.lettuce.core.support.ConnectionPoolSupport$1.borrowObject(ConnectionPoolSupport.java:122)        at io.lettuce.core.support.ConnectionPoolSupport$1.borrowObject(ConnectionPoolSupport.java:117)        at org.springframework.data.redis.connection.lettuce.LettucePoolingConnectionProvider.getConnection(LettucePoolingConnectionProvider.java:99)        at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$ExceptionTranslatingConnectionProvider.getConnection(LettuceConnectionFactory.java:1531)        at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1358)        at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1341)        at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedConnection(LettuceConnectionFactory.java:1059)        at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getConnection(LettuceConnectionFactory.java:398)        at org.springframework.data.redis.core.RedisConnectionUtils.fetchConnection(RedisConnectionUtils.java:193)        at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:144)        at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:105)        at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:393)        at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:373)        at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97)        at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:50)        at com.benfei.web.util.RedisUtil.get(RedisUtil.java:71)        at com.benfei.web.socket.MessageJob.runAdmin(MessageJob.java:38)        at java.base@17.0.7/java.lang.reflect.Method.invoke(Method.java:568)        at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)        at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)        at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:96)        at java.base@17.0.7/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)        at java.base@17.0.7/java.util.concurrent.FutureTask.run(FutureTask.java:264)        at java.base@17.0.7/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)        at java.base@17.0.7/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)        at java.base@17.0.7/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)        at java.base@17.0.7/java.lang.Thread.run(Thread.java:833)        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:807)        at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:210)

It's very strange that when I didn't generate the configuration file under /META-INF/native-image, Redis can be used normally, but after adding the configuration file, such an error occurred instead


Viewing all articles
Browse latest Browse all 2203

Trending Articles