1.java浅拷贝BeanUtils.copyProperties引发的京东京东RPC异常 | 京东物流技术团队
2.java开发的网站有哪些
3.哪些网站是java
java浅拷贝BeanUtils.copyProperties引发的RPC异常 | 京东物流技术团队
近期参与了一个攻坚项目,前期因为其他流程原因,源码测试时间已经耽搁了好几天了,京东京东本以为已经解决了卡点,源码后续流程应该顺顺利利的京东京东,没想到 人在地铁上,源码timem源码bug从咚咚来~
没有任何修改的京东京东服务接口,抛出异常:
java.lang.ClassCastException: java.util.HashMap cannot be cast to cn.xxx.xxx.xxx.xxx.BatchInfo
1、源码作为资深写bug的京东京东老司机,第一感觉是源码传参的报文格式有问题了,可以通过模拟报文排查。京东京东于是源码乎,在群里圈了服务提供方同学B看下,京东京东泡泡西游online源码BG快速的源码用测试工具+本地debug的方式,验证了下报文格式,京东京东发现居然都调用成功了。。。
2、同步服务调用同学L,重点关注:1)、调用方的序列化方式;2)、最近代码改动逻辑是否有问题。L同学确认自己逻辑没有问题后,同步B同学和S同学,软件源码模仿开发看内部是否有什么处理逻辑。。。
3、第二天早上一来,快速写了单测,确认服务端收到的报文格式,的确没有问题。于是乎,开始扒代码。。。店铺app源码模板发现可疑的代码:
BeanUtils.copyProperties(item,cargoInfo)
PS:客户端&服务端类关系
因为BeanUtils.copyProperties属于浅拷贝,而浅拷贝只是调用子对象的set方法,并没有将所有属性拷贝(引用的一个内存地址)。所以将在进行调用时,JSF会因为反序列化时找不到对应的类,就会将其转换为Map。
直观图如下:
以上,初步定位原因,解决方式也就清晰了。
去掉BeanUtils.copyProperties,进行手动赋值。最终解决了这个问题。官方源码 恩山
1、想起王东岳老师的那句话,越原始的越稳定~
2、如果这种转换比较多,建议使用MapStruct
3、谨慎使用BeanUtils.copyProperties,请看:
作者:京东物流 吴义
来源:京东云开发者社区 自猿其说 Tech 转载请注明来源
java开发的网站有哪些
一、 Java开发的网站有很多,包括但不限于以下几个知名网站:淘宝网、京东、微博、腾讯网、美团等。 二、 1. 淘宝网:淘宝网是中国最大的网络零售平台之一,其网站后端开发主要使用Java语言,用于处理大量的交易和复杂的业务流程。 2. 京东:京东是中国著名的综合性电商平台,其网站架构中大量使用了Java技术,包括服务器端开发以及部分前端技术。 3. 微博:微博是一个流行的社交媒体平台,其网站及App的后端服务大多采用Java开发,用于处理用户的社交活动和数据存储。 4. 腾讯网:腾讯是一家大型的互联网公司,旗下的网站和应用程序也有很多是Java开发的,比如腾讯新闻、QQ邮箱等。 5. 美团:美团是一个在线订餐和生活服务平台,其网站和App的后端服务同样大量采用Java技术。 以上这些网站之所以选择Java进行开发,是因为Java具有强大的跨平台能力、丰富的库和框架支持以及稳定的性能,特别适合用于开发大型的商业网站和应用。此外,Java在Web开发领域有着广泛的使用,特别是在处理高并发、大数据量的场景下表现优异。哪些网站是java
哪些网站使用Java语言开发? 一、 许多知名网站都是使用Java语言开发的,例如新浪、淘宝、京东、YouTube、LinkedIn等。 二、详细解释: 1. 新浪:作为中国的主要门户网站之一,新浪提供了丰富的服务,包括新闻、博客、微博等。Java的跨平台特性和强大的后端开发能力,使得新浪能够为用户提供稳定、高效的服务。 2. 淘宝和京东:这两家中国最大的电商平台,其网站及应用程序都是基于Java开发的。Java的安全性和可靠性对于处理金融交易和保证用户数据的安全至关重要。 3. YouTube:作为全球最大的视频分享网站,YouTube的后端服务大量使用了Java技术。Java的灵活性和可扩展性使得YouTube能够应对大量用户的并发请求和复杂的数据处理。 4. LinkedIn:作为全球最大的职业社交平台,LinkedIn也广泛使用了Java进行网站开发。Java的丰富库和工具使得LinkedIn能够专注于提供高质量的社交体验。 这些网站之所以选择Java作为主要的开发语言,是因为Java具有跨平台、安全性高、可靠性强、灵活性和可扩展性等优点,能够应对大型网站的复杂需求。