deadpoolssr
deadpoolssr
server端使用JSONB.toBytes序列化,client端反序列化时,如果类的字段比server端的类少,在JSONB.parseObject的时候可能会抛出异常。 ` String jsonString = JSONB.toJSONString(bytes); Response tppResponse1 = JSON.parseObject(jsonString, Response.class, JSONReader.Feature.FieldBased); Response tppResponse = JSONB.parseObject(bytes, Response.class, JSONReader.Feature.FieldBased);` 样例代码如上,其中 JSON.parseObject不报错,JSONB.parseObject抛异常 com.alibaba.fastjson2.JSONException: name not support input : DOUBLE -77 at com.alibaba.fastjson2.JSONReaderJSONB.notSupportType(JSONReaderJSONB.java:2633)...
### Question 线上代码 ThreadSafeFury fury = Fury.builder().withLanguage(Language.JAVA) .requireClassRegistration(false) .withCompatibleMode(CompatibleMode.COMPATIBLE) .withClassLoader(classLoader) .buildThreadSafeFury(); fury.setClassLoader(classLoader, LoaderBinding.StagingType.SOFT_STAGING); return fury.deserialize(bytes); 报错堆栈 java.lang.IllegalAccessException: no such constructor: com.alibaba.alsc.chameleon.api.model.region.ChameleonCardFuryCompatibleCodec_1_1116884706_299406744.(Fury,Class)void/invokeSpecial at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:959) at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1101) at java.base/java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:2030) at java.base/java.lang.invoke.MethodHandles$Lookup.findConstructor(MethodHandles.java:1264) at...