2016-01-29 69 views
3

我知道我必须错过一些真正的基本点。 以下资源的方法:如何在TomEE 7.0.0-M1中使用Jax RS启用Bean验证?

@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错误的请求),但在TomEE 7.0.0-M1(jee7)它忽略验证注解,并用200 OK响应。 我尝试设置属性(尽管在TomEE 7中它被设置为默认启用),仍然没有。

org.apache.openejb.default.system.interceptors = org.apache.openejb.bval.BeanValidationAppendixInterceptor 

我在这里错过了什么?

+0

已经设置该属性,或使用TomEE 7.0-M1应该做的伎俩。你的问题必须在其他地方。 –

+0

这就是我所希望的...仍然没有找到解决方案 – kosta

回答

-1

您必须在JAX-RS资源中添加@Singleton或@Stateless注释才能进行bean验证。对于非Singleton /非EJB资源的CXF,如果需要验证这些对象,则需要注册org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInvoker。

0

在M1我认为你需要的方法添加@ValidateOnExecution,最后发布了它的固定IIRC