Closed freegaga closed 2 years ago
com.cloud.hub.dto.Command
这个参数是入参还是出参
这个是入参,伪代码如下
@Override
public Res
reference.setGeneric("gson"); 还有问题的话,可以在provider侧断点调试:org.apache.dubbo.rpc.filter.GenericFilter#invoke @freegaga
@AlbumenJ @mercyblitz
感觉是这里的问题
这里面是请求的业务实现的,你可以查一下你的服务端实现是不是有问题
wrapper.invokeMethod 是调用 proxy(服务端实现对象)的指定方法
@AlbumenJ 我查了下服务端没有什么问题, 现在我是通过如下方法解决的。但是这种方法不是很好。
AtomicBoolean flag = flagMap.get(group); if(null == flag || !flag.get()){//第一次调用 result = (Map<String, Object>) genericService.$invoke(method, new String[]{param.getClass().getName()}, new Object[]{PojoUtils.generalize(param)}); flag = new AtomicBoolean(true); flagMap.put(group,flag); }else{//非第一次调用 result = (Map<String, Object>) genericService.$invoke(method, new String[]{param.getClass().getName()}, new Object[]{JSONObject.toJSONString(param)}); }
这里面是请求的业务实现的,你可以查一下你的服务端实现是不是有问题
@AlbumenJ 我查了下服务端没有什么问题, 现在我是通过如下方法解决的。但是这种方法不是很好。
AtomicBoolean flag = flagMap.get(group); if(null == flag || !flag.get()){//第一次调用 result = (Map<String, Object>) genericService.$invoke(method, new String[]{param.getClass().getName()}, new Object[]{PojoUtils.generalize(param)}); flag = new AtomicBoolean(true); flagMap.put(group,flag); }else{//非第一次调用 result = (Map<String, Object>) genericService.$invoke(method, new String[]{param.getClass().getName()}, new Object[]{JSONObject.toJSONString(param)}); }
你在服务端打断点,第一次请求到 wrapper.invokeMethod
的时候看下是不是抛异常了,如果是的话再去业务代码里面打断点
因为你传的参数值是 Json 格式的
Map<String, Object> result = (Map<String, Object>) genericService.$invoke(method, new String[]{param.getClass().getName()}, new Object[]{JSONObject.toJSONString(param)});
这个方法也尝试下 reference.setGeneric("gson"); 或者 reference.setGeneric("json");
Environment
Steps to reproduce this issue
ReferenceConfig reference = new ReferenceConfig();
reference.setInterface("com...**");
reference.setGroup(group);
reference.setVersion(version);
reference.setRetries(retryTime);
上面是泛化调用代码
1,系统启动第一次通过泛化调用dubbo服务会报如下错误,但是第二次调dubbo服务就正常了。 2,我尝试过在调用dubbo服务的地方发生异常时捕获异常在重试也不行
Pls. provide [GitHub address] to reproduce this issue.
Expected Behavior
If there is an exception, please attach the exception trace: