Dubbo 报错提示 not support none serializable class 表示 Dubbo 在尝试序列化某个对象时遇到了问题。
这里的问题是org.springframework.security.web.servletapi.HttpServlet3RequestFactory$Servlet3SecurityContextHolderAwareRequestWrapper
类没有实现序列化接口,因此无法被正确地序列化。
在微服务架构中,服务提供者和服务消费者之间需要传输对象时,这些对象必须是可以序列化的,这样才能在网络上传输。而Servlet3SecurityContextHolderAwareRequestWrapper 是一个包装了 HttpServletRequest 的类,原因可能是将HttpServletRequest对象在提供者与消费者之间传输了。
而HttpServletRequest又没有实现Serializable 接口,所以就报了这个错误。
解决办法:
如果可能的话,尽量不要将 HttpServletRequest 或其包装类作为方法参数传递。而是传递具体的业务对象,这些对象应该包含请求中所需要的数据,并且这些对象要注意序列化。