当前位置:首页 > 未来畅想 > 正文内容

requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常

admin9小时前未来畅想6

requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常

背景

近期参与了一个攻坚项目,前期因为其他流程原因,测试时间已经耽搁了好几天了,本以为已经解决了卡点requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常,后续流程应该顺顺利利的requestgetattribute map,没想到 人在地铁上,bug从咚咚来~

没有任何修改的服务接口,抛出异常:

java.lang.: java.util. be cast to cn.xxx.xxx.xxx.xxx.

排查过程

1、作为资深写bug的老司机,第一感觉是传参的报文格式有问题了,可以通过模拟报文排查。于是乎requestgetattribute map,在群里圈了服务提供方同学B看下,BG快速的用测试工具+本地debug的方式,验证了下报文格式,发现居然都调用成功了。。。

2、同步服务调用同学L,重点关注:1)、调用方的序列化方式;2)、最近代码改动逻辑是否有问题。L同学确认自己逻辑没有问题后,同步B同学和S同学,看内部是否有什么处理逻辑。。。

3、第二天早上一来,快速写了单测requestgetattribute map,确认服务端收到的报文格式,的确没有问题。于是乎,开始扒代码。。。发现可疑的代码:

.(item,)

private List convertToCargoInfo(OutboundEventCallbackRequest outboundEventCallbackRequest) {
        return outboundEventCallbackRequest.getCargos().stream().map(item -> {
            CargoInfo cargoInfo = new CargoInfo();
            BeanUtils.copyProperties(item, cargoInfo);
            return cargoInfo;
    }).collect(Collectors.toList());
}

PS:客户端&服务端类关系

requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常 第1张

因为.属于浅拷贝,而浅拷贝只是调用子对象的set方法,并没有将所有属性拷贝(引用的一个内存地址)。所以将在进行调用时,JSF会因为反序列化时找不到对应的类,就会将其转换为Map。

直观图如下:

requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常 第2张

以上requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常,初步定位原因,解决方式也就清晰了。

解决方案

去掉.,进行手动赋值。最终解决了这个问题。

后续反思

1、想起王东岳老师的那句话,越原始的越稳定~

2、如果这种转换比较多,建议使用

3、谨慎使用.,请看:

requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常 第3张

加入微信交流群:************ ,请猛戳这里→点击入群

扫描二维码推送至手机访问。

版权声明:本文由前沿科技娱乐汇发布,如需转载请注明出处。

本文链接:https://kejiyl.com/post/6012.html

分享给朋友:

“requestgetattribute map java浅拷贝BeanUtils.copyProperties引发的RPC异常” 的相关文章

汽车自动驾驶产业链

汽车自动驾驶产业链

在当今飞速发展的汽车科技产业中,自动驾驶技术无疑是最具前瞻性和影响力的领域之一。它代表着未来出行的趋势,正在逐步改变我们的生活方式和交通格局。自动驾驶技术的发展历程可谓是波澜壮阔。从早期的概念验证到如今的实际应用,历经了数十年的不懈努力和技术创新。早期的自动驾驶研究主要集中在实验室环境中,通过各种传...

脑机接口娱乐复合型人才培养的策略

脑机接口娱乐复合型人才培养的策略

在当今科技飞速发展的时代,脑机接口技术作为一项极具潜力的前沿领域,正逐渐引起全球的广泛关注。而与之相关的娱乐产业,也在期待着能够借助脑机接口技术的力量,开创出全新的发展局面。为了满足这一需求,培养脑机接口娱乐复合型人才成为了当务之急。我们需要明确脑机接口娱乐复合型人才的定义和能力要求。这类人才既要有...

全息投影与虚拟现实融合的超现实体验

全息投影与虚拟现实融合的超现实体验

在当今科技飞速发展的时代,一种全新的超现实体验正悄然兴起,那便是全息投影与虚拟现实的融合。这种融合不仅仅是两种技术的简单叠加,而是带来了一场震撼心灵的感官盛宴,让人们仿佛踏入了一个奇幻的新世界。全息投影,以其无需佩戴任何特殊设备即可呈现出真三维图像的特点,一直以来都让人们为之惊叹。它能够在空中悬浮着...

全息投影演出观众反馈机制的构建

全息投影演出观众反馈机制的构建

在当今数字化时代,全息投影技术以其独特的魅力和震撼的视觉效果,在演出领域掀起了一股新的热潮。仅仅拥有出色的全息投影演出是不够的,为了不断提升演出质量,满足观众的需求,构建一个完善的观众反馈机制显得尤为重要。观众反馈机制是演出与观众之间的重要桥梁,它能够让演出团队及时了解观众的感受、意见和建议,从而有...

全息投影演出空间利用的巧妙艺术

全息投影演出空间利用的巧妙艺术

在当今的艺术领域,全息投影技术犹如一颗璀璨的新星,正以其独特的魅力和无限的可能性,在演出空间中掀起一场震撼的。全息投影演出空间利用的巧妙艺术,将观众带入了一个前所未有的梦幻世界,让他们感受到了科技与艺术的完美融合。全息投影技术通过激光束的干涉和衍射,将三维图像在空中呈现出来,给人一种身临其境的感觉。...

全息投影演出舞台道具设计的巧思

全息投影演出舞台道具设计的巧思

在当今的演艺舞台领域,全息投影技术犹如一颗璀璨的新星,为演出带来了前所未有的震撼与奇幻。而全息投影演出舞台道具设计的巧思,则是这颗新星背后的魔法之手,巧妙地将虚拟与现实融合,创造出令人叹为观止的视觉盛宴。全息投影演出舞台道具设计的巧思体现在其对空间的巧妙利用上。传统的舞台道具往往受限于实际的物理空间...