概述
原有项目A转换成dubbo后,同样代码,报错如下:
018-02-27 09:57:05 [DubboServerHandler-172.19.18.144:20881-thread-5] ERROR: com.alibaba.dubbo.rpc.filter.ExceptionFilter#invoke 请求ID(cea29a2b7824482f908122492ce441c2): [DUBBO] Got unchecked and undeclared exception which called by 172.19.18.144. service: com.qqjf.xd.enterprise.ICorpVer2BizService, method: saveCorpInfo, exception: java.lang.StackOverflowError: null, dubbo version: 2.6.0, current host: 127.0.0.1
java.lang.StackOverflowError
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:57)
at sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl.get(UnsafeQualifiedObjectFieldAccessorImpl.java:38)
at java.lang.reflect.Field.get(Field.java:393)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:220)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
at com.qqjf.common.bean.BeanUtils.beanToMap(BeanUtils.java:221)
StackOverflowError造成该异常本质原因两个:
1.java虚拟机栈:如果线程请求的栈深度大于虚拟机栈所允许的深度;
2.本地方法栈:与java虚拟机栈类似。
网上找了一些方案有两个:1.优化原有代码,将反射变量放入队列,可能是优化的不正确,没有效果;
2.使用beanMap进行对象转换成map,没有报StackOverflowError。原因参考
http://blog.csdn.net/q358543781/article/details/50176953
最后
以上就是高挑水壶为你收集整理的一次StackOverflowError异常记录的全部内容,希望文章能够帮你解决一次StackOverflowError异常记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复