Java 类javax.validation.ConstraintViolationException 实例源码
项目:rest-jersey-utils
文件:ConstraintViolationExceptionMapperTest.java
@Test
public void testMaxAnnotationValidationToReponse(){
val invalidVal = new ClassWithMinMaxAnnotation("12345678911");
Response response = uut.toResponse(new ConstraintViolationException(validator.validate(invalidVal)));
JSONObject responseEntityJson = new JSONObject(response.getEntity());
assertThat(response.getStatus()).isEqualTo(400);
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("code").toString()
).isEqualTo("MAXLENGTH");
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("path").toString()
).isEqualTo("#/annotatedVar");
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("limit")
).isEqualTo(MAX_VAL);
}
项目:outcomes
文件:ValidationConsumer.java
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml"});
context.start();
IValidationService validationService = (IValidationService)context.getBean("validationService");
// Error
try {
ValidationParameter parameter = new ValidationParameter();
validationService.save(parameter);
System.out.println("Validation ERROR");
} catch (RpcException e) { // 抛出的是RpcException
ConstraintViolationException ve = (ConstraintViolationException) e.getCause();
// 里面嵌了一个ConstraintViolationException
Set<ConstraintViolation<?>> violations = ve.getConstraintViolations();
// 可以拿到一个验证错误详细信息的集合
System.out.println(violations);
}
}
项目:roxana
文件:ResponseProcessorManager.java
private ResponseProcessor getResponseProcessor(final Exception e) {
if (e instanceof ConstraintViolationException) {
if(AnnotationUtils.findAnnotation(e.getClass(), BusinessConstraintValidator.class) != null) {
return this.getBusinessConstraintValidatorRP();
}
return this.getConstraintValidatorRP();
}
if (AnnotationUtils.findAnnotation(e.getClass(), MultiBusinessException.class) != null) {
return this.getMultiBusinessExceptionRP();
}
return this.getBusinessExceptionRP();
}
项目:REST-Web-Services
文件:IncorrectParametersExceptionHandler.java
/**
* @param ex {@link ConstraintViolationException}
* @return Returns an object with a list of incorrect parameters.
*/
@ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ValidationErrorDTO processValidationError(final ConstraintViolationException ex) {
final ValidationErrorDTO validationErrorDTO = new ValidationErrorDTO();
final Set<ConstraintViolation<?>> set = ex.getConstraintViolations();
for (Iterator<ConstraintViolation<?>> iterator = set.iterator();iterator.hasNext(); ) {
ConstraintViolation<?> next = iterator.next();
validationErrorDTO.getFieldErrors()
.add(new ErrorFieldDTO(((PathImpl)next.getPropertyPath()).getLeafNode().getName(),
next.getMessage()));
}
return validationErrorDTO;
}
项目:crnk-framework
文件:ValidationEndToEndTest.java
@Test
public void testPropertyOnRelation() {
Task task = new Task();
task.setId(1L);
task.setName("test");
taskRepo.create(task);
task.setName(null);
Project project = new Project();
project.setId(2L);
project.setName("test");
project.getTasks().add(task);
try {
projectRepo.create(project);
} catch (ConstraintViolationException e) {
Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
Assert.assertEquals(1, violations.size());
ConstraintViolationImpl violation = (ConstraintViolationImpl) violations.iterator().next();
Assert.assertEquals("{javax.validation.constraints.NotNull.message}", violation.getMessageTemplate());
Assert.assertEquals("tasks[0]", violation.getPropertyPath().toString());
Assert.assertEquals("/data/relationships/tasks/0", violation.getErrorData().getSourcePointer());
}
}
项目:bootstrap
文件:JAXRSBeanValidationImplicitInInterceptorTest.java
/**
* Check not valid parameter operation failed.
*/
@Test
public void objectInvalid() {
final SystemUser userDto = new SystemUser();
userDto.setLogin("");
try {
validationInInterceptor.handleValidation(MESSAGE, INSTANCE, fromName("object"), Arrays.asList(userDto));
Assert.fail("Expected validation errors");
} catch (final ConstraintViolationException cve) {
// Check all expected errors are there.
final Set<ConstraintViolation<?>> constraintViolations = cve.getConstraintViolations();
Assert.assertNotNull(constraintViolations);
Assert.assertEquals(1, constraintViolations.size());
// Check expected errors
final ConstraintViolation<?> error1 = constraintViolations.iterator().next();
Assert.assertEquals(NotEmpty.class, error1.getConstraintDescriptor().getAnnotation().annotationType());
Assert.assertEquals("", error1.getInvalidValue());
Assert.assertEquals("login", error1.getPropertyPath().toString());
}
}
项目:dubbox-hystrix
文件:JValidator.java
public void validate(String methodName, Class<?>[] parameterTypes, Object[] arguments) throws Exception {
String methodClassName = clazz.getName() + "$" + toUpperMethoName(methodName);
Class<?> methodClass = null;
try {
methodClass = Class.forName(methodClassName, false, Thread.currentThread().getContextClassLoader());
} catch (ClassNotFoundException e) {
}
Set<ConstraintViolation<?>> violations = new HashSet<ConstraintViolation<?>>();
Method method = clazz.getMethod(methodName, parameterTypes);
Object parameterBean = getMethodParameterBean(clazz, method, arguments);
if (parameterBean != null) {
if (methodClass != null) {
violations.addAll(validator.validate(parameterBean, Default.class, clazz, methodClass));
} else {
violations.addAll(validator.validate(parameterBean, Default.class, clazz));
}
}
for (Object arg : arguments) {
validate(violations, arg, clazz, methodClass);
}
if (violations.size() > 0) {
throw new ConstraintViolationException("Failed to validate service: " + clazz.getName() + ", method: " + methodName + ", cause: " + violations, violations);
}
}
项目:lams
文件:MethodValidationInterceptor.java
@Override
@SuppressWarnings("unchecked")
public Object invoke(MethodInvocation invocation) throws Throwable {
Class<?>[] groups = determineValidationGroups(invocation);
if (forExecutablesMethod != null) {
Object executableValidator = ReflectionUtils.invokeMethod(forExecutablesMethod, this.validator);
Set<ConstraintViolation<?>> result = (Set<ConstraintViolation<?>>)
ReflectionUtils.invokeMethod(validateParametersMethod, executableValidator,
invocation.getThis(), invocation.getMethod(), invocation.getArguments(), groups);
if (!result.isEmpty()) {
throw new ConstraintViolationException(result);
}
Object returnValue = invocation.proceed();
result = (Set<ConstraintViolation<?>>)
ReflectionUtils.invokeMethod(validateReturnValueMethod, executableValidator,
invocation.getThis(), invocation.getMethod(), returnValue, groups);
if (!result.isEmpty()) {
throw new ConstraintViolationException(result);
}
return returnValue;
}
else {
return HibernateValidatorDelegate.invokeWithinValidation(invocation, this.validator, groups);
}
}
项目:EatDubbo
文件:JValidator.java
public void validate(String methodName, Class<?>[] parameterTypes, Object[] arguments) throws Exception {
String methodClassName = clazz.getName() + "_" + toUpperMethoName(methodName);
Class<?> methodClass = null;
try {
methodClass = Class.forName(methodClassName, false, Thread.currentThread().getContextClassLoader());
} catch (ClassNotFoundException e) {
}
Set<ConstraintViolation<?>> violations = new HashSet<ConstraintViolation<?>>();
Method method = clazz.getMethod(methodName, parameterTypes);
Object parameterBean = getMethodParameterBean(clazz, method, arguments);
if (parameterBean != null) {
if (methodClass != null) {
violations.addAll(validator.validate(parameterBean, Default.class, clazz, methodClass));
} else {
violations.addAll(validator.validate(parameterBean, Default.class, clazz));
}
}
for (Object arg : arguments) {
validate(violations, arg, clazz, methodClass);
}
if (violations.size() > 0) {
throw new ConstraintViolationException("Failed to validate service: " + clazz.getName() + ", method: " + methodName + ", cause: " + violations, violations);
}
}
项目:rest-jersey-utils
文件:ConstraintViolationExceptionMapperTest.java
@Test
public void testSizeMaxValidationToReponse(){
val invalidVal = new ClassWithSizeAnnotation("12345678911");
Response response = uut.toResponse(new ConstraintViolationException(validator.validate(invalidVal)));
JSONObject responseEntityJson = new JSONObject(response.getEntity());
assertThat(response.getStatus()).isEqualTo(400);
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("code").toString()
).isEqualTo("MAXLENGTH");
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("path").toString()
).isEqualTo("#/annotatedVar");
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("limit")
).isEqualTo(MAX_VAL);
}
项目:crnk-framework
文件:ValidationEndToEndTest.java
@Test
public void testResourceObjectValidation() {
Project project = new Project();
project.setId(1L);
project.setName(ComplexValidator.INVALID_NAME);
try {
projectRepo.create(project);
} catch (ConstraintViolationException e) {
Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
Assert.assertEquals(1, violations.size());
ConstraintViolationImpl violation = (ConstraintViolationImpl) violations.iterator().next();
Assert.assertEquals("{complex.message}", violation.getMessageTemplate());
Assert.assertEquals("", violation.getPropertyPath().toString());
Assert.assertEquals("", violation.getErrorData().getSourcePointer());
}
}
项目:rest-jersey-utils
文件:ConstraintViolationExceptionMapperTest.java
@Test
public void testNotNullAnnotationValidationToReponse(){
val invalidVal = new ClassWithNotNullAnnotation(null);
Response response = uut.toResponse(new ConstraintViolationException(validator.validate(invalidVal)));
JSONObject responseEntityJson = new JSONObject(response.getEntity());
assertThat(response.getStatus()).isEqualTo(400);
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("code").toString()
).isEqualTo("REQUIRED");
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.get("path").toString()
).isEqualTo("#/annotatedVar");
assertThat(responseEntityJson
.getJSONArray("errors")
.getJSONObject(0)
.has("limit")
).isFalse();
}
项目:safecharge-java
文件:ValidationUtils.java
/**
* Validates the {@code request} based on its type and returns it or throws a {@code ValidationException}
* if any {@link ConstraintViolation} is found.
*
* @param request the request object to validate
* @param <T> request type param
* @return The validated request(the same object passed as {@code request})
* @throws ValidationException if any {@link ConstraintViolation} is found
*/
public static <T extends SafechargeBaseRequest> T validate(T request) throws ValidationException {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(request);
if (constraintViolations != null && !constraintViolations.isEmpty()) {
StringBuilder sb = new StringBuilder();
for (ConstraintViolation<T> constraintViolation : constraintViolations) {
sb.append(constraintViolation.getMessage())
.append(" ");
}
String errorMessage = sb.toString();
if (logger.isDebugEnabled()) {
logger.debug(errorMessage);
}
throw new ConstraintViolationException(constraintViolations);
}
return request;
}
项目:agendamlgr
文件:EventoFacade.java
public void editarEventoTipoUsuario(Evento evento, List<Categoria> categoriasEvento, Usuario usuarioQueEdita) throws AgendamlgException, AgendamlgNotFoundException {
try {
// Se obtiene una lista de Categorias "de verdad"
// No es necesario ya que sobre estos objetos no se invoca
// una propiedad como la de getEventoList, de ser asi si habria que hacer este paso
// como pasa en Evento, que el evento que llega desde el cliente tiene
// categoriaList a null y es por ello que hay que obtener desde el entity manager
// un evento "de verdad"
if (evento.getTipo() < 1 || evento.getTipo() > 3) {
throw AgendamlgException.tipoInvalido(evento.getTipo());
}
if (usuarioQueEdita.getTipo() == 3 || evento.getCreador().getId().equals(usuarioQueEdita.getId())) {
this.actualizarCategoriaEvento(evento, categoriasEvento);
} else {
throw AgendamlgException.sinPermisos(usuarioQueEdita.getNombre());
}
} catch (ConstraintViolationException e) {
throw AgendamlgException.eventoCamposInvalidos(e);
}
}
项目:bootstrap
文件:JAXRSBeanValidationImplicitInInterceptorTest.java
/**
* Check validation errors success for collections.
*/
@Test
public void jsr349CollectionInvalid() {
try {
final SystemUser userDto = new SystemUser();
userDto.setLogin("junit");
validationInInterceptor.handleValidation(MESSAGE, INSTANCE, fromName("jsr349Collection"),
Arrays.asList(Arrays.asList(userDto, userDto, userDto)));
Assert.fail("Expected validation errors");
} catch (final ConstraintViolationException cve) {
// Check all expected errors are there.
final Set<ConstraintViolation<?>> constraintViolations = cve.getConstraintViolations();
Assert.assertNotNull(constraintViolations);
Assert.assertEquals(1, constraintViolations.size());
// Check expected errors
final ConstraintViolation<?> error1 = constraintViolations.iterator().next();
Assert.assertEquals(Size.class, error1.getConstraintDescriptor().getAnnotation().annotationType());
Assert.assertEquals("jsr349Collection.params", error1.getPropertyPath().toString());
}
}
项目:bootstrap
文件:JAXRSBeanValidationImplicitInInterceptorTest.java
/**
* Check not valid parameter operation failed.
*/
@Test
public void objectNull() {
final SystemUser userDto = null;
try {
validationInInterceptor.handleValidation(MESSAGE, INSTANCE, fromName("object"), Arrays.asList(userDto));
Assert.fail("Expected validation errors");
} catch (final ConstraintViolationException cve) {
// Check all expected errors are there.
final Set<ConstraintViolation<?>> constraintViolations = cve.getConstraintViolations();
Assert.assertNotNull(constraintViolations);
Assert.assertEquals(1, constraintViolations.size());
// Check expected errors
final ConstraintViolation<?> error1 = constraintViolations.iterator().next();
Assert.assertEquals(NotNull.class, error1.getConstraintDescriptor().getAnnotation().annotationType());
Assert.assertEquals("object.param", error1.getPropertyPath().toString());
}
}
项目:agendamlgr
文件:EventoFacade.java
public void crearEventoTipoUsuario(Evento evento, List<Categoria> categoriasEvento) throws AgendamlgException {
try {
Usuario usuario = evento.getCreador();
if (evento.getTipo() < 1 || evento.getTipo() > 3) {
throw AgendamlgException.tipoInvalido(evento.getTipo());
}
if (usuario.getTipo() == 1) {
evento.setValidado((short) 0);
this.create(evento);
this.anadirCategoriaEvento(evento, categoriasEvento);
} else if (usuario.getTipo() > 1) {
evento.setValidado((short) 1);
this.create(evento);
this.anadirCategoriaEvento(evento, categoriasEvento);
this.enviarCorreoInteresados(evento);
}
//Tenemos que coger el id del evento que se acaba de añadir (yo no sé si esto es thread safe)
} catch (ConstraintViolationException e) {
throw AgendamlgException.eventoCamposInvalidos(e);
}
}
项目:safecharge-java
文件:ValidationsTest.java
@Test
public void testFailedValidation_OpenOrderRequest() {
try {
SafechargeBaseRequest safechargeRequest = OpenOrderRequest.builder()
.addMerchantInfo(invalidMerchantInfo)
.addAmount(invalidAmount)
.addCurrency(invalidCurrencyCode)
.addItem(dummyInvalidItem)
.build();
fail(CONSTRAINT_VIOLATION_EXCEPTION_EXPECTED_BUT_OBJECT_CREATION_PASSED_SUCCESSFULLY);
} catch (ConstraintViolationException e) {
assertEquals(5, e.getConstraintViolations()
.size());
}
}
项目:crnk-framework
文件:ValidationEndToEndTest.java
@Test
public void testPropertyNotNull() {
Project project = new Project();
project.setId(1L);
project.setName(null); // violation
try {
projectRepo.create(project);
} catch (ConstraintViolationException e) {
Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
Assert.assertEquals(1, violations.size());
ConstraintViolationImpl violation = (ConstraintViolationImpl) violations.iterator().next();
Assert.assertEquals("{javax.validation.constraints.NotNull.message}", violation.getMessageTemplate());
Assert.assertEquals("name", violation.getPropertyPath().toString());
Assert.assertNotNull(violation.getMessage());
Assert.assertTrue(violation.getMessage().contains("null"));
Assert.assertEquals("/data/attributes/name", violation.getErrorData().getSourcePointer());
}
}
项目:bootstrap
文件:JAXRSBeanValidationImplicitInInterceptor.java
@Override
protected void handleValidation(final Message message, final Object resourceInstance, final Method method,
final List<Object> arguments) {
super.handleValidation(message, resourceInstance, method, arguments);
// Check each parameter
final Set<ConstraintViolation<?>> validationErrors = new HashSet<>();
for (int index = 0; index < arguments.size(); index++) {
final Parameter parameter = method.getParameters()[index];
if (hasToBeValidated(parameter)) {
// This parameter is a not context, path or query parameter
validate(arguments.get(index), method, parameter, index, validationErrors);
}
}
// Check the veto
if (!validationErrors.isEmpty()) {
message.put(FaultListener.class.getName(), new NoOpFaultListener());
throw new ConstraintViolationException(validationErrors);
}
}
项目:Hi-Framework
文件:FrontiersReqHandler.java
private boolean handleException(Exception ex, String invokedClass, String invokedMethod ){
if(ex instanceof InvocationTargetException && ex.getCause() instanceof Exception)
ex = (Exception) ex.getCause();
log.error("An error occurred during frontier method invocation <"+invokedClass+"."+invokedMethod+">",ex);
if(ex instanceof ConstraintViolationException){
ConstraintViolationException violationException = (ConstraintViolationException) ex;
handleConstraintViolation(violationException);
return true;
}
requestContext.getResponse().setStatus(500);
requestContext.getResponse().setContentType("text/json;charset=UTF8");
requestContext.echo(serializeThrowable(ex));
return true;
}
项目:Hi-Framework
文件:FrontiersReqHandler.java
private void handleConstraintViolation(ConstraintViolationException violationException){
Set<ConstraintViolation<?>> violationSet = violationException.getConstraintViolations();
String[] messages = new String[violationSet.size()];
int i = 0;
for(ConstraintViolation violation: violationSet){
messages[i] = violation.getMessage();
i++;
}
Gson gson = appContext.getGsonBuilder().create();
Map details = new HashMap<>();
details.put("messages",messages);
Map exception = new HashMap<>();
exception.put("type",ConstraintViolationException.class.getSimpleName());
exception.put("details",details);
String resp = gson.toJson(exception);
requestContext.getResponse().setStatus(500);
requestContext.getResponse().setContentType("text/json;charset=UTF8");
requestContext.echo(resp);
}
项目:initiatives_backend_auth
文件:AdvisingResource.java
@ExceptionHandler(ConstraintViolationException.class)
public ResponseEntity<List<String>> handleConstraintViolationException(ConstraintViolationException e) {
if (e.getMessage() == null) {
List<String> constraints = e.getConstraintViolations().stream()
.map(constraintViolation -> new StringBuffer()
.append("Le champ ")
.append(constraintViolation.getPropertyPath().toString())
.append(" ")
.append(constraintViolation.getMessage())
.append(" (valeur : ")
.append(constraintViolation.getInvalidValue().toString())
.append(")")
.toString())
.collect(Collectors.toList());
return new ResponseEntity<>(constraints, HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(Collections.singletonList(e.getMessage()), HttpStatus.BAD_REQUEST);
}
项目:crnk-framework
文件:ValidationEndToEndTest.java
@Test
public void testMapElementAttributeNotNull() {
ProjectData data = new ProjectData();
data.setValue(null); // violation
Project project = new Project();
project.setId(1L);
project.setName("test");
project.setDataMap(new LinkedHashMap());
project.getDataMap().put("someKey", data);
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
try {
projectRepo.create(project);
} catch (ConstraintViolationException e) {
Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
Assert.assertEquals(1, violations.size());
ConstraintViolationImpl violation = (ConstraintViolationImpl) violations.iterator().next();
Assert.assertEquals("{javax.validation.constraints.NotNull.message}", violation.getMessageTemplate());
Assert.assertEquals("dataMap[someKey].value", violation.getPropertyPath().toString());
Assert.assertNotNull(violation.getMessage());
Assert.assertEquals("/data/attributes/dataMap/someKey/value", violation.getErrorData().getSourcePointer());
}
}
项目:nfse
文件:AbstractBuilder.java
public T build() throws ConstraintViolationException {
T object = buildInternal();
Set<ConstraintViolation<T>> violations = validator.validate(object);
if (!violations.isEmpty()) {
Set<String> violationMessages = new HashSet<String>();
for (ConstraintViolation<T> constraintViolation : violations) {
violationMessages.add(constraintViolation.getPropertyPath() + ": " + constraintViolation.getMessage());
}
throw new ConstraintViolationException(violationMessages.toString() , violations);
}
return object;
}
项目:GitTalent
文件:GittalentBackendApplicationTests.java
@Test(expected=ConstraintViolationException.class)
public void testDevValidation() {
Developer developer = new Developer();
DeveloperInfo developerInfo = new DeveloperInfo();
developer.setId("alovelace");
developerInfo.setFirstName("Ada");
developerInfo.setLastName("Lovelace");
developer.setDeveloperInfo(developerInfo);
developerRepository.save(developer);
}
项目:nfse
文件:RpsServicoTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirCodMunicipioTamanhoInvalido() throws Exception {
try {
new ServicoBuilder(FabricaDeObjetosFake.getRpsValores(), "01.01")
.comDiscriminacao("Descricao Teste")
.comCodigoMunicipio("")
.build();
} catch (final ConstraintViolationException e) {
new ServicoBuilder(FabricaDeObjetosFake.getRpsValores(), "01.01")
.comDiscriminacao("Descricao Teste")
.comCodigoMunicipio("31062005")
.build();
}
}
项目:dubbox-hystrix
文件:RpcExceptionMapper.java
public Response toResponse(RpcException e) {
// TODO do more sophisticated exception handling and output
if (e.getCause() instanceof ConstraintViolationException) {
return handleConstraintViolationException((ConstraintViolationException) e.getCause());
}
// we may want to avoid exposing the dubbo exception details to certain clients
// TODO for now just do plain text output
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("Internal server error: " + e.getMessage()).type(ContentType.TEXT_PLAIN_UTF_8).build();
}
项目:nfse
文件:RpsServicoTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirServicoSemDiscriminacao() throws Exception {
new ServicoBuilder(FabricaDeObjetosFake.getRpsValores(), "01.01")
.comCodigoCnae("0000000")
.comCodigoTributacaoMunicipio("00000000000000000000")
.comCodigoMunicipio("3106200")
.build();
}
项目:spring-vue-demo
文件:SysUserController.java
/**
* 为参数验证添加异常处理器
*/
@ExceptionHandler(ConstraintViolationException.class)
public RestResult handleConstraintViolationException(ConstraintViolationException cve) {
//这里简化处理了,cve.getConstraintViolations 会得到所有错误信息的迭代,可以酌情处理
String errorMessage = cve.getConstraintViolations().iterator().next().getMessage();
return generator.getFailResult(errorMessage);
}
项目:product-management-system
文件:ExceptionControllerAdvice.java
/**
* Handle validation exceptions.
*/
@ExceptionHandler(ConstraintViolationException.class)
public ResponseEntity handleConstraintViolationException(final ConstraintViolationException e) {
final StringBuilder builder = new StringBuilder();
e.getConstraintViolations().forEach(violation -> builder.append(
String.format("%s Current value: %s", violation.getMessage(), violation.getInvalidValue())));
log.warn(builder.toString());
return ResponseEntity.badRequest().body(new ErrorDto(builder.toString()));
}
项目:k-framework
文件:DefaultApiExceptionHandler.java
@ExceptionHandler(ConstraintViolationException.class)
@ResponseBody
public ErrorRes constraintViolationExceptionHandler(HttpServletResponse response, ConstraintViolationException e) {
response.setStatus(400);
Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
if (!violations.isEmpty()) {
ConstraintViolation<?> violation = violations.iterator().next();
return new ErrorRes(-1, violation.getPropertyPath().toString() + violation.getMessage());
}
return new ErrorRes();
}
项目:nfse
文件:RpsTomadorEnderecoTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirBairroComTamanhoInvalido() throws Exception {
try {
FabricaDeObjetosFake.getTomadorEnderecoBuilder()
.comBairro("").build();
} catch (final ConstraintViolationException e) {
FabricaDeObjetosFake.getTomadorEnderecoBuilder()
.comBairro("DcifpaAuHvgeappsWffEdIQdPLLxmQnoyDJQyMRiLLjgUcpOZncjZNBkaqDjf").build();
}
}
项目:nfse
文件:RpsTomadorEnderecoTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirCodigoMunicipioComTamanhoInvalido() throws Exception {
try {
FabricaDeObjetosFake.getTomadorEnderecoBuilder()
.comCodigoMunicipio("").build();
} catch (final ConstraintViolationException e) {
FabricaDeObjetosFake.getTomadorEnderecoBuilder()
.comCodigoMunicipio("00000000").build();
}
}
项目:nfse
文件:RpsTomadorEnderecoTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirUfComTamanhoInvalido() throws Exception {
try {
FabricaDeObjetosFake.getTomadorEnderecoBuilder()
.comUf("").build();
} catch (final ConstraintViolationException e) {
FabricaDeObjetosFake.getTomadorEnderecoBuilder()
.comUf("AAA").build();
}
}
项目:nfse
文件:RpsTomadorCpfCnpjTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirDocumentoComTamanhoInvalido() throws Exception {
try {
new TomadorCpfCnpjBuilder().comDocumento("1234567890").build();
} catch (final ConstraintViolationException e) {
new TomadorCpfCnpjBuilder().comDocumento("123456789090").build();
}
}
项目:amanda
文件:RestExceptionHandler.java
@ExceptionHandler(ConstraintViolationException.class)
public ResponseEntity<ErrorResponse> handle(ConstraintViolationException e) {
ErrorResponse errors = new ErrorResponse();
e.getConstraintViolations().forEach(constraintViolation -> {
ErrorItem errorItem = new ErrorItem();
errorItem.setCode(constraintViolation.getMessageTemplate());
errorItem.setMessage(constraintViolation.getMessage());
errors.addError(errorItem);
});
return new ResponseEntity<>(errors, HttpStatus.BAD_REQUEST);
}
项目:nfse
文件:RpsTomadorCpfCnpjTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirDocumentoComPontuacao() throws Exception {
try {
new TomadorCpfCnpjBuilder().comDocumento("123.456.789-09").build();
} catch (final ConstraintViolationException e) {
new TomadorCpfCnpjBuilder().comDocumento("12.548.785/9856-42").build();
}
}
项目:nfse
文件:RpsTomadorCpfCnpjTest.java
@Test(expected = ConstraintViolationException.class)
public void naoDevePermitirDocumentoInvalido() throws Exception {
try {
new TomadorCpfCnpjBuilder().comDocumento("11111111112").build();
} catch (final ConstraintViolationException e) {
new TomadorCpfCnpjBuilder().comDocumento("11111111111112").build();
}
}
项目:lib-edge
文件:GlobalExceptionHandler.java
@ResponseBody
@ResponseStatus(HttpStatus.OK)
@ExceptionHandler({ConstraintViolationException.class})
public Map<String, String> handleException(ConstraintViolationException e) {
StringBuilder message = new StringBuilder();
for (ConstraintViolation<?> s : e.getConstraintViolations()) {
message.append(s.getMessage()).append(" ");
}
log.warn("参数校验失败: {}", message.toString());
return ImmutableMap.of("code", "1911001", "message", message.toString());
}