List of usage examples for org.springframework.messaging.handler.annotation.support MethodArgumentNotValidException MethodArgumentNotValidException
public MethodArgumentNotValidException(Message<?> message, MethodParameter parameter,
BindingResult bindingResult)
From source file:ch.rasc.wampspring.method.PayloadArgumentResolver.java
@Override public Object resolveArgument(MethodParameter param, Message<?> message) throws Exception { Payload ann = param.getParameterAnnotation(Payload.class); if (ann != null && StringUtils.hasText(ann.value())) { throw new IllegalStateException("@Payload SpEL expressions not supported by this resolver"); }/* w w w . j av a 2s . c o m*/ Object payload = message.getPayload(); if (isEmptyPayload(payload)) { if (ann == null || ann.required()) { String paramName = getParameterName(param); BindingResult bindingResult = new BeanPropertyBindingResult(payload, paramName); bindingResult.addError(new ObjectError(paramName, "@Payload param is required")); throw new MethodArgumentNotValidException(message, param, bindingResult); } return null; } Class<?> targetClass = param.getParameterType(); if (ClassUtils.isAssignable(targetClass, payload.getClass())) { validate(message, param, payload); return payload; } payload = this.methodParameterConverter.convert(param, message.getPayload()); if (payload == null) { throw new MessageConversionException(message, "No converter found to convert to " + targetClass + ", message=" + message); } validate(message, param, payload); return payload; }
From source file:com.kinglcc.spring.jms.core.Jackson2PayloadArgumentResolver.java
private void bindEmptyPayloadError(MethodParameter parameter, Message<?> message, Object payload) { String paramName = getParameterName(parameter); BindingResult bindingResult = new BeanPropertyBindingResult(payload, paramName); bindingResult.addError(new ObjectError(paramName, "@Payload param is required")); throw new MethodArgumentNotValidException(message, parameter, bindingResult); }
From source file:ch.rasc.wampspring.method.PayloadArgumentResolver.java
protected void validate(Message<?> message, MethodParameter parameter, Object target) { if (this.validator == null) { return;/* w ww . j a va 2 s. c o m*/ } for (Annotation ann : parameter.getParameterAnnotations()) { Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class); if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) { Object hints = validatedAnn != null ? validatedAnn.value() : AnnotationUtils.getValue(ann); Object[] validationHints = hints instanceof Object[] ? (Object[]) hints : new Object[] { hints }; BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(target, getParameterName(parameter)); if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) { ((SmartValidator) this.validator).validate(target, bindingResult, validationHints); } else { this.validator.validate(target, bindingResult); } if (bindingResult.hasErrors()) { throw new MethodArgumentNotValidException(message, parameter, bindingResult); } break; } } }
From source file:org.springframework.messaging.handler.annotation.reactive.PayloadMethodArgumentResolver.java
@Nullable private Consumer<Object> getValidator(Message<?> message, MethodParameter parameter) { if (this.validator == null) { return null; }/*w w w .j a v a2 s . c o m*/ for (Annotation ann : parameter.getParameterAnnotations()) { Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class); if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) { Object hints = (validatedAnn != null ? validatedAnn.value() : AnnotationUtils.getValue(ann)); Object[] validationHints = (hints instanceof Object[] ? (Object[]) hints : new Object[] { hints }); String name = Conventions.getVariableNameForParameter(parameter); return target -> { BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(target, name); if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) { ((SmartValidator) this.validator).validate(target, bindingResult, validationHints); } else { this.validator.validate(target, bindingResult); } if (bindingResult.hasErrors()) { throw new MethodArgumentNotValidException(message, parameter, bindingResult); } }; } } return null; }