因为代理原因导致的NotSerializableException

Posted 阿丙的博客园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了因为代理原因导致的NotSerializableException相关的知识,希望对你有一定的参考价值。

  错误信息:
  NotSerializableException
  Failed to serialize object
  Proxy
 
  报这个错,一开始就往没有序列化这一块想,可是报错点是:
  excelTableService.sendMessage(smsService,userSession,procInstance,type,cipConfigFile);
 
  这个函数的参数都是有值的。而且这个方法是ServiceBean,本身报错的类又是一个Controller,也是一个Bean,能序列化吗?
  最后试着都加了序列化,仍然报错。
 
 
  错误的原因并不是没有序列化,而是代理的问题。
 
  我们以springMVC的逻辑来想:通过了Controller注入了一个Service,然后又调用了一个另一个Service的方法,把前一个Service当做参数传递进去了。这本身是不是不合逻辑的。在Contriller中注入Service使用的代理,将这个代理再传回Service中,就会获取不到了。
 
  看原来的代码中的方法:
@SuppressWarnings("unchecked")
public void sendMessage(SmsService smsService,
                        UserSession userSession,
                        ProcInstance procInstance,
                        String type, String cipConfigFile) throws IOException {
}

 

  在这个Service中,本来可以直接注入SmsService,和UserSession 这些值的,并不需要从外部传递过来。更改这个Service中的方法后,果然没有了问题。
 
  原创文章,欢迎转载,转载请注明出处!
 

以上是关于因为代理原因导致的NotSerializableException的主要内容,如果未能解决你的问题,请参考以下文章

银期转账 非法银期代理关系

SQL代理无法启动

fidder如何设置代理转发

使用Charles代理工具导致电脑无法正常访问网站(您的连接不是私密连接)

nginx 代理在响应时间过长时导致错误

iptables导致nginx反向代理不可用的解决方案