gpt4 book ai didi

java - Resteasy Bean 验证未再次被调用

转载 作者:行者123 更新时间:2023-11-30 03:36:48 26 4
gpt4 key购买 nike

我的问题类似于Resteasy Bean Validation Not Being Invoked 。但那里的解决方案不起作用。

我在我的 pom.xml 中使用 Resteasy 3.0.9.Final 和resteasy-validator-provider-11。我正在使用自定义 Jetty 类启动整个过程。

奇怪的是,验证在 @PathParams 上工作正常,但在 bean 上却不行。

@POST
@Path("/foo/{myParam}")
public Message post(MyBean myBean, @PathParam("myParam") @Size(min=5) String myParam) {
return new Message("bean:" + myBean.toString());
}

public static class MyBean {

@NotNull
public String myStr;

@Max(value = 3)
public int myInt;

public String toString() {
return myStr + myInt;
}
}

在这种情况下,myParam 上的 @Size 约束工作正常。但是 MyBean 中的 @NotNull 和 @Max 约束没有被调用。

我是否在某处缺少注释?

这里还有一条线索。我的日志包括以下条目:

2014-12-30 12:16:56 org.hibernate.validator.internal.util.Version 6446 INFO  HV000001: Hibernate Validator 5.0.1.Final
2014-12-30 12:16:56 org.jboss.resteasy.plugins.validation.AbstractValidatorContextResolver 6477 INFO Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory

最佳答案

我相信,但不是 100% 确定,问题是您在 MyBean 参数上缺少 @Valid 。我还建议将其设为一个单独的类,而不是静态类。

根据规范,如果对象是复杂对象,则对方法的验证约束需要将参数注释为 @Valid 以确保约束是级联的。

关于java - Resteasy Bean 验证未再次被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27710571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com