本来可以完整运行的模块突然不能使用了,然后就找前端要来接口连接进行测试,结果发现,本地程序可以完整的运行下来,但是返回 JSON 数据时却报错 500 ,下方是错误信息:
{
"timestamp": "2019-03-05T06:03:30.296+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Internal Server Error",
"path": "/app/wallet/selectPersonal1"
}
错误类型:实体类数据类型与封装值不匹配!!
Could not write JSON: (was java.lang.NullPointerException);nested exception is com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain)
一脸懵逼的去检查了一遍程序,然后发现,并没有什么问题 !!结果不死心的又去检查 Service 和 接口 ,发现还是没有任何问题,后来问过同事才知道是由人加了“字段”。。。被坑惨了!!,下方是 bean ( 仔细看一下有没有啥不对!! ):
//注意数据类型!!!!!
//定义的实体类
private Long sup_id;
//封装后的实体类
public long getSup_id() {
return sup_id;
}
public void setSup_id(Long sup_id) {
this.sup_id = sup_id;
}
在项目中,我们都会建model包下的实体bean,每个实体的属性的数据类型可能用了基本类型,也可能用了引用类型,可能有时候在处理业务时一个不小心,我们直接修改bean的字段类型,但是又没有把set/get方法重新生成,就比如我的一个字段类型仅仅把属性的基本类型(long)改为引用类型(Long),而并没有将set/get的类型一起修改。这个坑给我摔得有点“脑溢血”!!