Session replication issue, it keep saying communication issue

I am using 8.8.5 and springboot 2.1.6. it doesn’t work, it keep saying communication issue. after check the log, the following error happens.
I have checked the code carefully, no palce is using TomcatEmbeddedWebappClassLoader. it seems it is springboot’s behavior.
The following addon already be added:
https://vaadin.com/directory/component/spring-session-redis/

It will throw serialize exception as following:
Caused by: java.io.NotSerializableException: org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeArray(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[na:1.8.0_201]

at java.util.HashMap.internalWriteEntries(Unknown Source) ~[na:1.8.0_201]

at java.util.HashMap.writeObject(Unknown Source) ~[na:1.8.0_201]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]

at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) ~[na:1.8.0_201]

at com.vaadin.server.VaadinSession.writeObject(VaadinSession.java:1485) ~[vaadin-server-8.8.5.jar:8.8.5]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]

at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[na:1.8.0_201]

at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[na:1.8.0_201]

at org.springframework.core.serializer.DefaultSerializer.serialize(DefaultSerializer.java:46) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]

at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:63) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]

… 41 common frames omitted