Open
Description
我们这边使服务端用dubbo会在RpcContext.getContext().setAttachment(key, value)里的value中使用一个map而不是字符串, 现在的方式直接序列化过去是string导致服务端无法解析。
我这边稍微修改了下让它沿用ClassUtils.parseParameter兼容其他数据格式的反序列化。
List attachmentArgs = Constants.getAttachmentArgs(this);
if (attachmentArgs != null && !attachmentArgs.isEmpty()) {
List attachmentParameterTypeList = new ArrayList();
List attachmentParameterValueList = new ArrayList();
for(MethodArgument attachmentArg : attachmentArgs) {
ClassUtils.parseParameter(attachmentParameterTypeList, attachmentParameterValueList, attachmentArg);
}
IntStream.range(0, attachmentParameterValueList.size()).forEach(i -> RpcContext.getContext().setAttachment(attachmentParameterTypeList.get(i), attachmentParameterValueList.get(i)));
}