3.2 升级至 3.3 Hessian 与 Springboot 的问题
- Dominant language
- CSS
- Stars
- 491
- Forks
- 809
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 6
Description
Srpingboot 版本3.3.5 dubbo 3.3.1
通过 gradle buildJar打成 jar 包后运行序列化会报错,疑似 META-INF 中的 dubbo/hessian/serializers 没有注册成功
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.time.LocalDate java.time.LocalDateTime.date accessible: module java.base does not "opens java.time" to unnamed module @31c88ec8
at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:388) ~[na:na]
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:364) ~[na:na]
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:312) ~[na:na]
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) ~[na:na]
at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) ~[na:na]
at com.alibaba.com.caucho.hessian.io.JavaSerializer.introspect(JavaSerializer.java:170) ~[hessian-lite-4.0.3.jar!/:4.0.3]
at com.alibaba.com.caucho.hessian.io.JavaSerializer.(JavaSerializer.java:81) ~[hessian-lite-4.0.3.jar!/:4.0.3]
at com.alibaba.com.caucho.hessian.io.JavaSerializer.create(JavaSerializer.java:100) ~[hessian-lite-4.0.3.jar!/:4.0.3]
at org.apache.dubbo.common.serialize.hessian2.Hessian2SerializerFactory.getDefaultSerializer(Hessian2SerializerFactory.java:61) ~[dubbo-3.3.1.jar!/:3.3.1]
at com.alibaba.com.caucho.hessian.io.SerializerFactory.loadSerializer(SerializerFactory.java:387) ~[hessian-lite-4.0.3.jar!/:4.0.3]
at com.alibaba.com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.java:333) ~[hessian-lite-4.0.3.jar!/:4.0.3]
at com.alibaba.com.caucho.hessian.io.SerializerFactory.getObjectSerializer(SerializerFactory.java:284) ~[hessian-lite-4.0.3.jar!/:4.0.3]
at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:434) ~[hessian-lite-4.0.3.jar!/:4.0.3]
at com.alibaba.com.caucho.hessian.io.UnsafeSerializer$ObjectFieldSerializer.serialize(UnsafeSerializer.java:302) ~[hessian-lite-4.0.3.jar!/:4.0.3]
... 66 common frames omitted
但是用 gradle bootRun 不会报错,怀疑打包成 fatjar 后出现的问题
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the difference between `gradle buildJar` and `gradle bootRun` with Spring Boot 3.3.5 and Dubbo 3.3.1, capturing the Hessian stack trace. Inspect the packaged `META-INF/dubbo/hessian/serializers` entries and trace loading through `Hessian2SerializerFactory` and `SerializerFactory`. Done means both launch paths register the same serializers without the reported `LocalDateTime` access exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring-boot
- Domain
- backend, build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100