写好的的代码,本地测试没问题,提交部署到测试环境后出现问题。这个现象看起来很奇怪,表面上来看好像自己没做错什么,实际上却是因为没有对在不同主机间传递的数据进行序列化的原因。
以下开始对这个问题的讨论记录与总结
针对我们系统的架构同事给出了解释,本地实际上只有一台物理机,因此是否实现序列化没影响。但是对于测试环境,尤其是我的写法,一个dto从controller传递到action,这个过程实际上是从web层传递到了app层( web层打包成war包,app层打包进jar包。)而web层和app层是部署在不同的主机上的,因此dto实际上是在不同的主机间传递了,也因此需要通过让数据实现序列化来传递。
最后吐槽自己一下,这个错误去年犯过的,就因为自己不求甚解,又犯了一次。还有自己从日志中提取有效信息能力差,写功能还不喜欢写日志。