我在Karaf中使用CXF的Dinamics特性,並面臨Bean Validation不適用於子資源的問題。 例如在下面的代碼:Karaf中的CXF:如何在子資源上配置bean驗證(最好使用藍圖)?
@Path("services")
public interface Service {
@Path("{id}/orders")
public Order getOrderForService(@PathParam("id") int serviceId);
}
@Path("orders")
public interface Order {
@POST
Product getProduct(@NotNull @Valid Product product);
}
下訂單時根資源,Bean驗證工作正常,但是當它被援引作爲服務的一個子資源,豆驗證不起作用。
我發現一個問題CXF-6297
這裏說,
這是不是一個錯誤 - JAXRSBeanValidationInvoker可以照顧它。
注意JAXRSBeanValidationInInterceptor也是一個ContainerRequestFilter - 因此您可以將其註冊爲JAX-RS提供程序,但具有諷刺意味的是,考慮到匹配後請求過濾器無法應用於定位器,因此無法用於驗證定位器。 ..所以註冊自定義調用是唯一的方式去得到驗證子資源定位符太
,我已經紅了文章about Invokers
,但它並沒有描述如何使用藍圖配置一個調用。
所以問題是:如何使用藍圖在Karaf的CXF的子資源上配置bean驗證? 或者可能有另一種方式來做到這一點?