背景

最近项目中在和第三方进行联调一个接口,我们这边发送http请求给对方,然后接收对方的回应,代码都是老代码。根据注释,对方的SDK中写好的Request类有一个无法序列化的bug,所以这边重新写了一个Request类,基本属性都是相同的,但是重点是有一个属性是静态内部类,还有两个是list属性,类似于下面这样:

private List<Order> orders;
private AddRequest.Ticket ticket;
private List<Payment> payments;

AddRequest就是我们自己重写的请求类,他们SDK中的请求类是MixAddRequest,我们组装好请求参数后利用Spring的BeanUtils的copyProperties方法将AddRequest中的属性拷贝到MixAddRequest,然后发送请求。到此为止,照理说一切完美。

结果请求失败,纳尼?对方说缺少一个必要的字段,参数校验不通过,一查字段名称,是Ticket这个类里面的某个字段,赶紧看代码,心里充满对老代码的自信,想着一定是哪里搞错了,或者是他们那边偷偷动了代码,把字段从可选改为了必选,嘿嘿。

果然在代码里找到了设置的地方,这下应该是他们的问题确信无疑了,再开一把调试,准备宣判他们的死刑。结果发现发给他们的请求就是没有这个字段。。。中间只有一个Spring的copy属性的方法,当时觉得很诡异。

由于中间只有这么一行代码,玄机肯定在这里面,初步怀疑是两个静态内部类不同导致,所以自己写Demo,准备搞一把这个BeanUt

Spring 的 BeanUtils 踩坑记,你是不是遇到过这些问题?相关推荐

  1. Spring @Transactional踩坑记

    @Transactional踩坑记 总述 ​ Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@Transactional注解,实现事务 ...

  2. python从入门到实践django看不懂_Python编程:从入门到实践踩坑记 Django

    <>踩坑记 Django Django Python 19.1.1.5 模板new_topic 做完书上的步骤后,对主题添加页面经行测试,但是浏览器显示 服务器异常. 个人采用的开发环境是 ...

  3. 东八区转为0时区_踩坑记 | Flink 天级别窗口中存在的时区问题

    ❝ 本系列每篇文章都是从一些实际的 case 出发,分析一些生产环境中经常会遇到的问题,抛砖引玉,以帮助小伙伴们解决一些实际问题.本文介绍 Flink 时间以及时区问题,分析了在天级别的窗口时会遇到的 ...

  4. 服务器重新部署踩坑记

    服务器重新部署踩坑记 Intro 之前的服务器是 Ubuntu 18.04 ,上周周末想升级一下服务器系统,从 18.04 升级到 20.04,结果升级升挂了... 后来 SSH 始终连不上,索性删除 ...

  5. IdentityServer 部署踩坑记

    IdentityServer 部署踩坑记 Intro 周末终于部署了 IdentityServer 以及 IdentityServerAdmin 项目,踩了几个坑,在此记录分享一下. 部署架构 项目是 ...

  6. windows container 踩坑记

    windows container 踩坑记 Intro 我们有一些服务是 dotnet framework 的,不能直接跑在 docker linux container 下面,最近一直在折腾把它部署 ...

  7. Spark踩坑记——数据库(Hbase+Mysql)转

    转自:http://www.cnblogs.com/xlturing/p/spark.html 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库 ...

  8. android小程序_小程序踩坑记

    小程序踩坑记 希望这个文章能尽量记录下小程序的那些坑,避免开发者们浪费自己的生命来定位到底是自己代码导致的还是啥神秘的字节跳变原因. 前记 小程序大多数坑是同一套代码在不同平台上表现不一致导致的,微信 ...

  9. go nil json.marshal 完是null_字节跳动踩坑记#3:Go服务灵异panic

    这个坑比较新鲜,刚填完,还冒着冷气. - 1 - 在字节跳动,我们服务的所有 log 都通过统一的日志库采集到流式日志服务.落地 ES 集群,配上字节云超(sang)级(xin)强(bing)大(ku ...

最新文章

  1. 分享一段PowerShell用户认证Function
  2. 数据导出之sqlserver-导出脚本
  3. python好学吗mooc中文网-Python语言程序设计
  4. Python基础-----pickle模块
  5. c++基础——程序流程结构之选择结构
  6. 我的空间为什么叫IT人?
  7. Visual Studio 2008 每日提示(八)
  8. 超好用的C#控制台应用模板
  9. STM32 影子寄存器
  10. 【渝粤教育】电大中专电商运营实操 (5)作业 题库
  11. python while快速写法_从零开始学Python,带你手把手实战之一
  12. 解决Ubuntu16.04更新源时显示“暂时不能解析域名”问题
  13. Qt入门教程100篇(已完结)
  14. 如何禁止拼音加加自动修改IE首页
  15. Linux下制作WIndows 7启动U盘
  16. python里面的pip是什么意思_python中pip是什么
  17. 微分方程——线性微分方程
  18. 南朝皇帝简介-20170604
  19. 淘宝买二级c语言题库可以嘛,大学计算机二级考试(C语言)试题在哪可以买?...
  20. 苯四乙酸 cas1820793-31-4 齐岳中间体|单体材料

热门文章

  1. 基于CentOS 6.8平台最新源代码包编译安装企业版MariaDB数据库
  2. 集合详解(三)----Map的两种遍历方式
  3. 浅析x86架构中cache的组织结构
  4. cocos2dx 3.3 Director setNotificationNode BUG
  5. sts从mysql数据库中反向生成实体类
  6. ASP.NET - 演练:创建网页以显示 XML 数据
  7. hdu 4309(最大流+枚举状态)
  8. lwip之数据收发流程_3
  9. 用Python做科学计算
  10. C++中的Lambda表达式详解