Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将特定约束验证器映射到Jersey中的特定ContrainViolationException_Java_Hibernate_Jax Rs_Bean Validation_Jersey 2.0 - Fatal编程技术网

Java 将特定约束验证器映射到Jersey中的特定ContrainViolationException

Java 将特定约束验证器映射到Jersey中的特定ContrainViolationException,java,hibernate,jax-rs,bean-validation,jersey-2.0,Java,Hibernate,Jax Rs,Bean Validation,Jersey 2.0,我正在尝试创建一个自定义验证器,并将其映射到一个特定的constraintViolationException。原因是我想为不同的约束创建不同的自定义异常。例如,如果在数据库中找不到用户,则会触发未找到violationException,而如果用户的用户名无效,则会执行错误响应violationException @Retention(RUNTIME) @Target({ FIELD, METHOD }) @Constraint(validatedBy = UserNotValidValida

我正在尝试创建一个自定义验证器,并将其映射到一个特定的constraintViolationException。原因是我想为不同的约束创建不同的自定义异常。例如,如果在数据库中找不到用户,则会触发未找到violationException,而如果用户的用户名无效,则会执行错误响应violationException

@Retention(RUNTIME)
@Target({ FIELD, METHOD })
@Constraint(validatedBy = UserNotValidValidator.class)
public @interface UserIsValid { ... }
映射到

public class ConstraintExceptionMapper implements
    ExceptionMapper<ConstraintViolationException> {
   public Response toResponse(ConstraintViolationException e) { ... }
}
公共类ConstraintExceptionMapper实现
例外情况{
公众对响应的响应(约束ViolationException e){…}
}

更具体地说,问题是bean hibernate validator是否支持多约束异常映射器。

异常映射器是JAX-RS的概念,而不是bean验证的概念。您应该为
ConstraintViolationException
创建一个异常映射器,并让它根据给定冲突异常中包含的冲突创建不同的响应。例如,您可以通过“ConstraintViolation.getConstraintDescriptor().getAnnotation().annotationType()”检查违反的约束类型。

在这里遇到了类似的情况,但如果代码太多(如果有情况),维护代码不是很困难吗“ConstraintViolationException”中的注释类型?您能给我一个如何处理约束映射异常的建议/示例吗。我需要一个for循环来检查annotationType(),对于某些情况,我希望在notfoundexception之前抛出一个badrequestexception,这不是一个干净的解决方案。我正在寻找并想知道是否有一些注释可以将特定的自定义约束映射到特定的自定义映射器。您可以定义一个元注释,用于标记自定义约束的不同类别。然后,如上所述检索违反约束的注释类型,并通过读取元注释检索类别;根据类别,您可以创建特定的响应。