2018年04月26日交的智商税

本文描述了一个关于产品状态字段在特定工具请求中返回null的问题排查过程。问题出现的原因在于工具请求未能正确设置语言环境,导致无法获取到产品状态。通过直接访问产品页面确认状态字段存在,并进一步推测工具内部可能依赖产品所属商店的默认语言。

代码图片:

103923_ObUG_1170781.png

这个

product.getStatus()

在这里是空的,这个请求是我们后台的管理平台一个工具请求的.这个工具就是验证当前产品是否能够在网站上卖.结果这里status为null.因为status这个字段是个多语言的,默认的获取逻辑是如果get的时候,没有提供Locale这个对象,是拿当前产品的默认语言的locale的,保证了肯定能够获取到数据的.

我接着就用idea来测试了当用默认的locale来获取能否拿到值,结果是有的.

104730_dBYG_1170781.png

因为

product.getStatus()

这个方法debug进去跟到后面是看不到具体执行的代码的,这里有个AOP导致了我也没找到是那个类切入到这里了.这个没有源码也是头疼.

后面我也拿着没辙,因为我看着产品应该配置的我都配置了.我就直接通过页面来访问该产品看能否显示,结果居然正常显示了.我当时一脸懵逼了,请求这个的时候,status是有值了,能够通过校验.

后面我把问题向写这个工具类的同事说了,得到的反馈是这个工具有的时候就是会不好使的.?

我们这个后台也看不到请求的sql语句.我就在想应该是在页面上请求这个产品的时候,应该是在这个时候根据当前产品是属于哪个store,拿到了store的默认语言.那个AOP应该就是在此时生效了.

古话说得好,尽信书不如无书.

 

转载于:https://my.oschina.net/u/1170781/blog/1802045

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值