报错详情:

在dubbo整合SpringSecurity时,需要使用HttpServletRequest获取信息,代码如下:

结果执行后,查看结果,发现报错,报错信息如下:

io.netty.handler.codec.EncoderException: java.lang.IllegalStateException: Serialized class org.springframework.security.web.firewall.StrictHttpFirewall$StrictFirewalledRequest must implement java.io.Serializable

错误分析:

Dubbo不能序列化HttpServletRequest

解决方案:

出现报错,是因为adminSerive已经注册到Dubbo中,如果将HttpServletRequest直接作为参数传入adminSerive的方法中,Dubbo就会序列化HttpServletRequest。所以我们可以直接避开这一步,先通过HttpServletRequest获取所需数据,再将所需数据作为参数传入到adminSerive的方法中。如下所示: 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐