当前位置: 首页 > news >正文

外贸网站架构网站层级关系

外贸网站架构,网站层级关系,怎么样做一个个人网站,一般网站字体大小Lombok版本变化导致的反序列化异常 背景 因为安全性的考虑#xff0c;最近在梳理旧系统的系统依赖。改动依赖时候还好#xff0c;毕竟只是换掉不再合作公司的旧依赖#xff0c;没敢动别的太多东西。不过没多久#xff0c;测试团队就找来了… 排查问题之第一次跑偏 旧系…Lombok版本变化导致的反序列化异常 背景 因为安全性的考虑最近在梳理旧系统的系统依赖。改动依赖时候还好毕竟只是换掉不再合作公司的旧依赖没敢动别的太多东西。不过没多久测试团队就找来了… 排查问题之第一次跑偏 旧系统有一些这样的接口下图全部提示异常… 看了下日志入参对象为空… 2024-12-10 10:11:52,679 [http-nio-9011-exec-3] INFO [xxx.PreservationController:2238] [traced900fbccc0932d79] - PolicyReinstatementReqVO(com.xxx.web.vo.endorse.PolicyReinstatementReqVO17ad, ContNonull, OrderNonull)入参对象如下注意都是首字母大写的 Data NoArgsConstructor AllArgsConstructor public class PolicyReinstatementReqVO implements Serializable {private static final long serialVersionUID 6056472621794316031L;private String ContNo;private String OrderNo; }第一反应就是反序列化出问题了于是乎开始查这旧系统的序列化方式。查到了如下配置 Beanpublic HttpMessageConverter responseBodyConverter() {MappingJackson2HttpMessageConverter jackson2HttpMessageConverter new MappingJackson2HttpMessageConverter();ListMediaType mediaTypeList new ArrayList();mediaTypeList.add(MediaType.APPLICATION_JSON);mediaTypeList.add(MediaType.TEXT_HTML);jackson2HttpMessageConverter.setSupportedMediaTypes(mediaTypeList);return jackson2HttpMessageConverter;}嗯。。用的Jackson(默认大小写敏感的那就简单了。。改成如下代码 Beanpublic HttpMessageConverter responseBodyConverter() {MappingJackson2HttpMessageConverter jackson2HttpMessageConverter new MappingJackson2HttpMessageConverter(new JacksonMapper());ListMediaType mediaTypeList new ArrayList();mediaTypeList.add(MediaType.APPLICATION_JSON);mediaTypeList.add(MediaType.TEXT_HTML);jackson2HttpMessageConverter.setSupportedMediaTypes(mediaTypeList);return jackson2HttpMessageConverter;} // 代码有删减 class JacksonMapper extends ObjectMapper {public JacksonMapper() {this.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);} }测了下嗯问题解决…我果然是个天才~ 不过想了下不对劲 我就是改了包依赖…没改代码啊…我这么改看似这个问题解决了…但这种改动在这旧系统会不会引发新问题我也不确定…这旧系统之前是怎么在这看似不合理的情况下正常运行的呢? 所以这么改大概率对但不合适所以先回滚改动吧… 换个思路排查 目前能定位的问题是反序列化时出了问题我的改动就是改了依赖包 综上所属应该是我改了包依赖之后导致的问题而我改依赖包可能导致两个变化。 变化一 删除的三方依赖包有处理序列化的逻辑我拿咖啡baby看了下源码完全没有…这里的疑虑排除 变化二 那就是这里了错不了依赖的版本变化导致反序列化出现问题了。 排查问题之第二次跑偏 既然是版本问题那就查查跟序列化有关的包版本变化有什么变化吧。 旧系统有 jackson、gson、fastjson… 查了老久了不展开说了后续的反思也在这里最后定位跟这些没关系。 Lombok 抓耳挠腮苦思冥想…没有结果周会到点了先开周会去吧… 周会结束重新梳理了下思路 修改依赖导致依赖版本出现了变化依赖版本导致反序列化获取不到属性序列化工具jackson、fastjson、gson都没问题 那问题是什么呢抛开序列化工具无论什么序列化工具都是要回归到对象本身的 getter、setter和 Constructor 的。而我们的这些是通过 Lombok 注解实现的巧的是Lombok 的版本也升级了… 先看下前后两个版本的变化吧 // 两个版本的getter、setter是没区别的但是Constructor有 ///新版本1.18.16public PolicyReinstatementReqVO(final String ContNo, final String OrderNo) {this.ContNo ContNo;this.OrderNo OrderNo;} // 旧版本1.16.18ConstructorProperties({ContNo, OrderNo})public PolicyReinstatementReqVO(final String ContNo, final String OrderNo) {this.ContNo ContNo;this.OrderNo OrderNo;}旧版本多了个 ConstructorProperties说实话我最开始不知道这个注解是做什么用的…惭愧。于是我先把 Lombok 的版本回退到1.16.18重新 Run 一下。 ok问题完美解决。 ConstructorProperties ConstructorProperties 注解是 Java 标准库的一部分。它用于在 Java 的构造函数上以确保在序列化和反序列化时构造函数的参数名称和顺序与 JSON 对象中的属性名称和顺序相匹配。并且 ConstructorProperties 注解的值必须与构造函数参数的顺序相匹配。Jackson 库支持 ConstructorProperties 注解。但如果构造函数参数使用了 JsonProperty 注解那么 ConstructorProperties 注解的值可以省略因为 Jackson 可以直接从 JsonProperty 注解中获取参数名称。通过使用 ConstructorProperties 注解你可以确保 Jackson 在序列化和反序列化时能够正确地处理构造函数参数从而避免因参数名称不匹配而导致的错误。 反思 好的点 这次处理问题的思路挺好没有使用自己丰富的想象力天马行空一同胡思乱想而是一直专注在1问题是什么2是什么变化导致这个问题这两个点上。 不好的点 处理旧系统之前虽然没那么多时间完全了解旧系统但既然要删除三方不安全的依赖就该提前排查和记录现有的依赖都是什么版本方便后续的问题追踪。 后续 再研究研究 Spring 以及 Jackson 序列化和反序列化流程吧。这块感觉自己比较熟但处理问题时又没有那么熟。
http://www.dnsts.com.cn/news/71607.html

相关文章:

  • 网站开发 策划是干嘛的男女做爰免费网站
  • thinkphp只能做网站手机把网站做成软件
  • 如何查网站开发环境网页设计师资格证
  • 馆陶专业做网站营业执照申请网站
  • 怎么找到合适的网站建设商视频app开发
  • 天津河东做网站哪家好长春seo整站优化
  • 网站建设素材图片服务器租用公司
  • 男女做爰视频网站付费设计网站
  • 网站备案实名认证程序员找工作的网站
  • 最好网站建设公司制作平台wordpress外贸站
  • 网站建设需要审批吗大型门户网站建设哪便宜
  • 企业网站建设产品设计书ps做网站时画布宽度
  • 石家庄建设集团有限公司网站微信公众号直接同步到wordpress
  • seo查询官方网站商城网站建设公司
  • 简述网站建设的一般流程网站开发外文期刊网
  • 网站建设保密网站栏目页关键词如何做
  • 网站建设实验小结介绍重庆网页设计
  • 惠州网站建设技术支持品牌宣传型网站有哪些
  • wordpress拿站纪念册设计制作公司
  • 网站开发需求单网站开发有哪些语言
  • 网站建设规划江苏中益建设官方网站
  • 佛山外贸建站郑州企业网站设计公司哪家好
  • 网站用后台更换图片哈尔滨seo建站
  • 网站建设要用到编程吗接推广网站
  • wps怎么做网站iis能建设网站吗
  • 一个网站制作流程网络游戏名
  • 做视频网站需要什么资质怎么做神马搜索排名seo
  • 成都企业做网站多少钱营销软文写作
  • 查工程中标信息哪个网站宜昌seo优化服务
  • 深圳网页网站设计织梦可以做英文网站吗