我知道我必须遗漏一些非常基本的观点。 以下资源方法:
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public TestObject getObj(@QueryParam("m") String m,
@Min(30) @NotNull @QueryParam("d") Double d) {
return new TestObject(m,m,d);
}
在Glassfish4中按预期工作(即返回400 Bad Request),但在TomEE 7.0.0-M1(jee7)中它忽略验证注释,并以200 OK响应。 我尝试设置属性(虽然在TomEE 7中默认设置为启用),但仍然没有。
org.apache.openejb.default.system.interceptors = org.apache.openejb.bval.BeanValidationAppendixInterceptor
我在这里缺少什么?
答案 0 :(得分:0)
在M1中,我认为你需要在方法上添加@ValidateOnExecution,最新版本将其修复为IIRC
答案 1 :(得分:-1)
您必须在JAX-RS资源中添加@Singleton或@Stateless注释才能进行bean验证。对于非单例/非EJB资源的CXF,如果需要验证这些对象,则需要注册org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInvoker。