起因:
javax.validation.ConstraintDeclarationException: HV000151: A method overriding another method must not redefine the parameter constraint configuration, but method SopManagerClientImpl#createDocumentInstanceAndSubmit(DocumentFlowRequest) redefines the configuration of SopClient#createDocumentInstanceAndSubmit(DocumentFlowRequest).
非法约束限定,必须要在接口上限制
经过调试,发现@NotNull加到接口,@Validated加到实现或者接口都可以,@Valid要放到接口上面。
所以正确实现如下:
public interface SopService {
/**
* 获取流程节点基本信息
* @param documentFlowCode 流程标识
* @return List<BasicNodeDto>
*/
List<BasicNodeDto> getFlowNodes(@NotBlank(message = "流程标识不能为空") @RequestParam("documentFlowCode") String documentFlowCode);
/**
* 创建流程并提交审批
* @param documentFlowRequest
* @return
*/
DocumentFlowInstanceDto createDocumentInstanceAndSubmit(@Valid @RequestBody DocumentFlowRequest documentFlowRequest);
}
@Validated
@Service
public class SopServiceImpl implements SopService {
@Override
public List<BasicNodeDto> getFlowNodes(@RequestParam("documentFlowCode")String documentFlowCode) {
return Collections.emptyList();
}
@Override
public DocumentFlowInstanceDto createDocumentInstanceAndSubmit(@RequestBody DocumentFlowRequest documentFlowRequest) {
return null;
}
}