记录一:代码运行时数据正常,返回接口数据异常,出现"attributes": {"$ref": "$.data[0].attributes"}
for循环里面执行的代码:
FlowNode node = (FlowNode) elements.get(0);
activityVo.setAttributes(node.getAttributes());
原因:$ref代表重复引用或循环引用产生的序列化问题。(重复引用就是一个集合/对象中的多个元素/属性同时引用同一对象,循环引用就是集合/对象中的多个元素/属性存在相互引用致使循环)
“$ref”:”..” 上一级 “$ref”:”@” 当前对象,也就是自引用 “$ref”:”$” 根对象 {"$ref":"../.."} 引用父对象的父对象 “$ref”:”$.children.0” 基于路径的引用,相当于root.getChildren().get(0)
解决方法:
FlowNode node = (FlowNode) elements.get(0);
String attStr = JSON.toJSONString(node.getAttributes(), SerializerFeature.DisableCircularReferenceDetect);
Map<String, List<ExtensionAttribute>> newAttributes = JSON.parseObject(attStr,Map.class);
activityVo.setAttributes(newAttributes);
?
记录二:报错org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name ‘testService’:
原因:创建bean的时候出现了循环引用
解决方法:
通过懒加载的方式,加上@Lazy
@Resource
@Lazy
private TestService testService;
?
记录三:.jks文件(JAVA KeyStore)
jks是Java密钥库(KeyStore)比较常见的一种格式(其他有JKS, JCEKS, PKCS12, BKS,UBER),是JAVA的keytools证书工具支持的证书私钥格式。java用的存储密钥的容器。可以同时容纳n个公钥或私钥,后缀一般是.jks或者.keystore或.truststore等。
记录四:java.lang.UnsupportedOperationException
原因:将String[]转化为List<String>,不能对转化出来的结果进行add,remove操作,因为不是ArrayList,而是Arrays里面的内部类ArrayList.
|