Java 当验证器返回force时,我如何强制自定义ConstraintValidator停止方法的执行?
我制作了一个自定义的Java 当验证器返回force时,我如何强制自定义ConstraintValidator停止方法的执行?,java,jakarta-ee,ejb,ejb-3.0,stateless-session-bean,Java,Jakarta Ee,Ejb,Ejb 3.0,Stateless Session Bean,我制作了一个自定义的ConstraintValidator,当我将其注释分配给任何方法时,它都可以工作,但我注意到它只会使该方法返回500个内部服务器错误,并阻止该方法打印或返回任何输出,但我注意到该方法中的任何代码仍然正常工作,但是没有返回或打印, 因此,当验证返回false时,我想强制我的自定义验证器完全停止方法的执行 我的自定义验证器示例 阿皮奥特 @Documented @Constraint(validatedBy = APIAuthValidator.class) @Target({
ConstraintValidator
,当我将其注释分配给任何方法时,它都可以工作,但我注意到它只会使该方法返回500个内部服务器错误,并阻止该方法打印或返回任何输出,但我注意到该方法中的任何代码仍然正常工作,但是没有返回或打印,
因此,当验证返回false时,我想强制我的自定义验证器完全停止方法的执行
我的自定义验证器示例
阿皮奥特
@Documented
@Constraint(validatedBy = APIAuthValidator.class)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface APIAuth {
String message() default "";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
在以前的代码中,虽然of@APIAuth
将停止打印字符串Test
,但其他代码仍然有效,并且方法将打印ln“代码执行仍然有效!”“
问候,
public class APIAuthValidator implements ConstraintValidator<APIAuth, String> {
@Context
private HttpServletRequest client;
@Override
public void initialize(APIAuth constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
return false;
}
@Stateless
@Path("Accepted")
public class AcceptedAPI {
@Context
private UriInfo context;
@Context
private HttpServletRequest client;
@PersistenceContext (unitName="APIPU") EntityManager EM;
@GET
@APIAuth
@Produces(MediaType.TEXT_PLAIN)
public String getIps() {
System.out.println("Code Execution Still Work!..");
return "Test";
}
}