您现在的位置是:亿华云 > 知识
Java浅拷贝BeanUtils.copyProperties引发的RPC异常
亿华云2025-10-04 03:23:48【知识】5人已围观
简介来源:京东技术01背景在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
近期参与了一个攻坚项目,引发异常前期因为其他流程原因,浅拷测试时间已经耽搁了好几天了,引发异常本以为已经解决了卡点,浅拷后续流程应该顺顺利利的引发异常,没想到 人在地铁上,浅拷bug从咚咚来~
没有任何修改的引发异常服务接口,抛出异常:java.lang.ClassCastException: java.util.HashMap cannot be 浅拷cast to cn.xxx.xxx.xxx.xxx.BatchInfo02排查过程
理解,首先 MCube 会依据模板缓存状态判断是引发异常否需要网络获取最新模板,当获取到模板后进行模板加载,浅拷加载阶段会将产物转换为视图树的引发异常结构,转换完成后将通过表达式引擎解析表达式并取得正确的浅拷值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。1、作为资深写bug的老司机,第一感觉是传参的报文格式有问题了,可以通过模拟报文排查。站群服务器于是乎,在群里圈了服务提供方同学B看下,BG快速的用测试工具+本地debug的方式,验证了下报文格式,发现居然都调用成功了。。。
2、同步服务调用同学L,重点关注:1)、调用方的序列化方式;2)、最近代码改动逻辑是否有问题。L同学确认自己逻辑没有问题后,同步B同学和S同学,看内部是否有什么处理逻辑。。。3、第二天早上一来,快速写了单测,确认服务端收到的报文格式,的确没有问题。于是乎,开始扒代码。高防服务器。。发现可疑的代码:BeanUtils.copyProperties(item,cargoInfo)private List<CargoInfo> convertToCargoInfo(OutboundEventCallbackRequest outboundEventCallbackRequest) { return outboundEventCallbackRequest.getCargos().stream().map(item -> { CargoInfo cargoInfo = new CargoInfo(); BeanUtils.copyProperties(item, cargoInfo); return cargoInfo; }).collect(Collectors.toList());}PS:客户端&服务端类关系
直观图如下:
以上,初步定位原因,解决方式也就清晰了。
03解决方案与后续反思理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。1.位图原理去掉BeanUtils.copyProperties,进行手动赋值。最终解决了这个问题。
后续反思
1、云服务器提供商想起王东岳老师的那句话,越原始的越稳定~
2、如果这种转换比较多,建议使用MapStruct
3、谨慎使用BeanUtils.copyProperties,请看:很赞哦!(25728)
相关文章
- 投资各类域名就像到处打游击战,结果处处失败。因为这样,对任何一个中国域名市场的走势和价格都没有准确的把握,所以最好缩小范围,准确把握战场态势,埋伏。
- 公司和个人选域名方法一样吗?有什么不同?
- 域名和网址一样吗?域名和网址有什么区别?
- 在数以亿计的网站中,我们应该抓住每一个可能带来宣传的机会,域名可以带有企业的名字,一般可以使用汉语拼音或者英语单词或者是相关缩写的形式,只要用户记住了你企业的名字,就能很容易的打出你的网站域名,同样的,记住了网站域名也能很快的记住你公司的名字。
- 在此期间,他们每天仍在这里卖大米,在理财方面个人感情有待提高。因为现在是收米的最佳时机。
- 5、企业注册国内域名需要证件,其它情况一律不需要证件。
- 比较短的域名方便用户记忆和传播,它带来的好处往往会超过其他类型的域名,如果你非要域名短而且还要包含关键词,那么往往会事与愿违,现在这种域名基本上是可遇而不可求的。
- 投资各类域名就像到处打游击战,结果处处失败。因为这样,对任何一个中国域名市场的走势和价格都没有准确的把握,所以最好缩小范围,准确把握战场态势,埋伏。
- 5、使用企业名称的英文名称作为域名也是国内许多企业选择域名的一种方式,特别适合一些与计算机、网络和通信相关的行业。
- 2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
热门文章
- 用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
- 为什么起域名意义非凡?起域名有什么名堂?
- 4、域名传输时,取决于域名原始用户的邮箱是否有效,以及他是否将密码发送到此邮箱。
- 当投资者经过第二阶段的认真学习之后又充满了信心,认为自己可以在市场上叱咤风云地大干一场了。但没想到“看花容易绣花难”,由于对理论知识不会灵活运用.从而失去灵活应变的本能,就经常会出现小赢大亏的局面,结果往往仍以失败告终。这使投资者很是困惑和痛苦,不知该如何办,甚至开始怀疑这个市场是不是不适合自己。在这种情况下,有的人选择了放弃,但有的意志坚定者则决定做最后的尝试。
站长推荐
其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
旧域名的外链是否会对新建站点产生影响?
3、查看排名
4.选择顶级的域名注册服务商
以上的就是为大家介绍的关于域名的详解域名注册:域名注册0
投资各类域名就像到处打游击战,结果处处失败。因为这样,对任何一个中国域名市场的走势和价格都没有准确的把握,所以最好缩小范围,准确把握战场态势,埋伏。
主流搜索引擎显示的相关搜索项越多,越能积极反映该域名的市场价值。同时,被评估域名的搜索引擎显示结果不佳可能是由于以下两个原因:
记住那句话,域名向来不属于任何人,谁先买就归谁,购买期过后,域名又不再属于任何人。