2016-01-29 72 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