Skip to content

拉取代码,在idea中报错 #694

@ddww

Description

@ddww

报错信息如下:
java.lang.reflect.InaccessibleObjectException: Unable to make field private final byte[] java.lang.String.value accessible: module java.base does not "opens java.lang" to unnamed module @1b11171f at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) at java.base/java.lang.reflect.Field.setAccessible(Field.java:172) at org.nustaq.serialization.FSTClazzInfo.createFieldInfo(FSTClazzInfo.java:512) at org.nustaq.serialization.FSTClazzInfo.createFields(FSTClazzInfo.java:368) at org.nustaq.serialization.FSTClazzInfo.<init>(FSTClazzInfo.java:129) at org.nustaq.serialization.FSTClazzInfoRegistry.getCLInfo(FSTClazzInfoRegistry.java:129) at org.nustaq.serialization.FSTClazzNameRegistry.addClassMapping(FSTClazzNameRegistry.java:98) at org.nustaq.serialization.FSTClazzNameRegistry.registerClassNoLookup(FSTClazzNameRegistry.java:85) at org.nustaq.serialization.FSTClazzNameRegistry.registerClass(FSTClazzNameRegistry.java:81) at org.nustaq.serialization.FSTConfiguration.addDefaultClazzes(FSTConfiguration.java:807) at org.nustaq.serialization.FSTConfiguration.initDefaultFstConfigurationInternal(FSTConfiguration.java:477) at org.nustaq.serialization.FSTConfiguration.createDefaultConfiguration(FSTConfiguration.java:472) at org.nustaq.serialization.FSTConfiguration.createDefaultConfiguration(FSTConfiguration.java:464) at org.jetlinks.community.codec.Serializers$2$1.initialValue(Serializers.java:52) at org.jetlinks.community.codec.Serializers$2$1.initialValue(Serializers.java:49) at io.netty.util.concurrent.FastThreadLocal.initialize(FastThreadLocal.java:178) at io.netty.util.concurrent.FastThreadLocal.get(FastThreadLocal.java:143) at org.jetlinks.community.codec.Serializers$2.createOutput(Serializers.java:68) at org.jetlinks.community.configure.redis.ObjectRedisSerializer.serialize(ObjectRedisSerializer.java:55) at org.springframework.data.redis.serializer.DefaultRedisElementWriter.write(DefaultRedisElementWriter.java:42) at org.springframework.data.redis.serializer.RedisSerializationContext$SerializationPair.write(RedisSerializationContext.java:292) at org.springframework.data.redis.core.DefaultReactiveHashOperations.rawHashValue(DefaultReactiveHashOperations.java:269) at org.springframework.data.redis.core.DefaultReactiveHashOperations.lambda$put$20(DefaultReactiveHashOperations.java:197) at org.springframework.data.redis.core.DefaultReactiveHashOperations.lambda$createMono$27(DefaultReactiveHashOperations.java:250) at org.springframework.data.redis.core.ReactiveRedisTemplate.lambda$doInConnection$1(ReactiveRedisTemplate.java:250) ...11 frames excluded
初步来看,是由于Java 17模块系统限制了对java.lang.String内部字段的访问。FST库试图通过反射访问私有字段,但被模块系统阻止。目前有什么解决方案呢?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions