自己对序列化的东西不怎么明白,但是最后还是解决了,记录下这个奇葩的问题。
我的场景:
我需要自己组装个json格式的数据,然后controller返回给客户端。
组装json的时候,我是这样写的:
JSONObject jsonObject = new JSONObject();
jsonObject.put("key", UUID.randomUUID().toString());
jsonObject.put("session", UUID.randomUUID().toString());
LOGGER.info("组装的json数据:[{}]",jsonObject);
以上代码没有任何问题,debug时候也可以走通,但是在最后我将这个jsonObejct对象返回给客户端的时候报了个错误,错误信息时这样的:
"exception":"org.springframework.http.converter.HttpMessageNotWritableException"
"message":"Could not write content: No serializer found for class cn.*.*.search.dto.SearchedNotice and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )
百度一下关键信息就知道是什么反序列化出了问题,百度的方法试了几种没有解决,依然存在这个问题。
最后看了一下自己创建JSONObject对象时候导的包是:org.json;
我的解决办法:换个包,将原来的导的org.json包换成com.alibaba.fastjson.JSONObject;(换成alibaba的)
重启项目,错误不再重现,且客户端成功接收到了我返回的json数据。