美文网首页
Dubbo踩坑 -- 不能序列化HttpServletReque

Dubbo踩坑 -- 不能序列化HttpServletReque

作者: FantJ | 来源:发表于2018-08-31 16:51 被阅读900次

    1. 报错

    这种错误在同一dubbo端口下个多个相同服务中是很难发现错误具体信息的,报错虽然也是fail invoke method但是没有详细信息(你靠猜是猜不出来哪里出问题的),所以最好暂时关闭其它服务,或者申请不同的dubbo端口测试,让错误更准确的暴露出来。

    1.1 Post请求报错:
    1.2 控制台报错:
    java.lang.IllegalStateException: 
    Serialized class org.springframework.web.multipart.support
    .StandardMultipartHttpServletRequest must implement java.io.Serializable
    

    2. 原因

    查找了一下这个类发现它确实是没有序列化

    public class StandardMultipartHttpServletRequest extends AbstractMultipartHttpServletRequest {...}
    

    3. 解决办法

    之所以报这个错是因为我在web层将HttpServletRequest进行传值到注册的服务:


    所以解决方法也很简单:

    1. 将整个业务处理都写在web服务中。(不规范)
    2. 将有用信息提取,转换成可序列化的类型。

    其实在HttpServletRequest中对我有用的信息是获取到容器的一个路径,所以将其提取,并修改传参。


    大功告成。

    相关文章

      网友评论

          本文标题:Dubbo踩坑 -- 不能序列化HttpServletReque

          本文链接:https://www.haomeiwen.com/subject/taxewftx.html