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

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

admin7小时前未来畅想5

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://www.kejiyl.com/post/6012.html

分享给朋友:

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

专家眼中的全息投影演出:技术革新与艺术升华

专家眼中的全息投影演出:技术革新与艺术升华

在当今的演艺领域,全息投影演出犹如一颗璀璨的明星,闪耀着独特的光芒。它不仅仅是一种视觉技术的展示,更是技术革新与艺术升华的完美结合,给观众带来了前所未有的震撼体验。从技术层面来看,全息投影演出代表着一场颠覆性的变革。传统的演出形式往往受到舞台空间和物理限制,而全息投影技术打破了这些束缚。通过激光束的...

脑机接口娱乐对心理健康的积极促进作用

脑机接口娱乐对心理健康的积极促进作用

在当今科技飞速发展的时代,脑机接口作为一项极具潜力的创新技术,正逐渐走进人们的生活,并对心理健康产生着积极而深远的影响。脑机接口娱乐,简单来说,就是通过直接与大脑进行交互来实现各种娱乐体验。这种全新的娱乐方式为人们带来了前所未有的感受和体验,对心理健康的促进作用也日益凸显。脑机接口娱乐能够帮助人们缓...

脑机接口娱乐在社交娱乐方面的创新应用

脑机接口娱乐在社交娱乐方面的创新应用

在当今科技飞速发展的时代,脑机接口作为一项极具潜力的前沿技术,正在悄然改变着我们的生活和娱乐方式。尤其是在社交娱乐领域,脑机接口带来了前所未有的创新应用,为人们带来了全新的体验。脑机接口娱乐在社交娱乐方面的第一个创新应用是实现了更加自然、直观的互动方式。传统的社交娱乐方式,如游戏、聊天等,往往依赖于...

全息投影演出未来主题的多元可能性预测

全息投影演出未来主题的多元可能性预测

在科技飞速发展的今天,全息投影技术正以其独特的魅力和无限的可能性,逐渐改变着我们的生活和娱乐方式。尤其是在演出领域,全息投影为未来主题的呈现带来了前所未有的创新和突破,让我们得以畅想那多元而神奇的未来世界。未来的全息投影演出将不再仅仅是简单的图像展示,而是能够与观众进行深度互动的沉浸式体验。通过先进...

脑机接口娱乐在教育游戏开发的实践

脑机接口娱乐在教育游戏开发的实践

在当今科技飞速发展的时代,脑机接口技术作为一项极具潜力的创新领域,正逐渐走进人们的生活,并在教育游戏开发中展现出了独特的实践价值。脑机接口是一种能够直接与大脑进行交互的技术,它可以通过读取大脑的电信号、脑磁信号等生物特征,将大脑的意图转化为计算机可识别的指令,从而实现人与机器的无缝连接。在教育游戏开...

全息投影演出音效设计的独特魔法

全息投影演出音效设计的独特魔法

在当今的演艺世界中,全息投影技术以其惊人的视觉效果和沉浸式体验,正逐渐成为舞台表演的新宠。而与之相伴的音效设计,则犹如那神秘的魔法咒语,为整个演出增添了无尽的魅力与情感。全息投影演出的音效设计,就像是一位隐藏在幕后的魔法师,通过精心调配的声音元素,将观众带入一个完全不同的时空。当那绚丽的全息影像在舞...