apache / apache/dubbo-website

3.2 升级至 3.3 Hessian 与 Springboot 的问题

Open
#3,077 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.