Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DubboRepeater泛化方式发起回放存在一个问题 #195

Open
vanto- opened this issue Feb 6, 2023 · 3 comments
Open

DubboRepeater泛化方式发起回放存在一个问题 #195

vanto- opened this issue Feb 6, 2023 · 3 comments

Comments

@vanto-
Copy link

vanto- commented Feb 6, 2023

目前DubboRepeater采用泛化调用发起回放,但是dubbo泛化调用会对返回值自定义序列化,其中会把返回类型中get方法当成属性写到最终返回的Map中,但是录制时候走普通dubbo调用序列化方式是不一致的,会导致录制和回放结果不一致

image

image

比如返回类型中如果包含某get方法
public List getDiscountCodeList() {
return StringUtils.isEmpty(discountCodes) ? null : Stream.of(discountCodes.split(",")).collect(Collectors.toList());
}
回放时走泛化调用最终会返回discountCodeList这个属性,但是该类本身是没有定义这个属性的,即录制结果也不会有该属性,所以会导致录制和回放结果不一致

@Aresxue
Copy link

Aresxue commented Mar 14, 2023

对于普通dubbo服务(非泛化调用)可以使用反射回放(injvm协议)其所有的信息都是完备的

image

image

@ChenXing-tech
Copy link

对于普通dubbo服务(非泛化调用)可以使用反射回放(injvm协议)其所有的信息都是完备的

image

image

hello,您用的dubbo是什么版本,3.0.5版本的需要获取scopeModel生成injvmProtocol,然而遇到了问题,在agent中执行ExtensionLoader.getExtensionLoader(Protocol.class)时,会抛出异常:
cause: No adaptive method exist on extension org.apache.dubbo.common.extension.ExtensionInjector,

@ChenXing-tech
Copy link

具体代码如下:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants