Skip to content

升级Java-Chassis 2.x版本后, ServerRestArgsFilter校验必填参数报错所返回的信息中没有具体的接口和参数名, 不利于问题定位 #3865

@yhs0092

Description

@yhs0092

问题原因

Java-Chassis 在 2.x 分支修改了RestCodec的逻辑, 1.x分支统一捕获所有Exception类型异常, 并在转换错误响应时添加接口、参数、参数处理器信息. 而2.x分支区分捕获InvocationException异常和其他的Exception异常, 其中InvocationException直接抛出, 只有其他的Exception异常才会附加错误接口信息. 而参数必填项检查刚好是在ParamProcessor内部做的, 报错抛出的是InvocationException, 因此绕过了附加接口信息的逻辑.

差异点在org.apache.servicecomb.common.rest.codec.RestCodec#restToArgs方法中.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions