Java Karaf中的CXF:如何在子资源上配置bean验证(最好使用Blueprint)?
我在Karaf中使用了CXF的Dinamics特性,并且面临着Bean验证不适用于子资源的问题。 例如,在以下代码中:Java Karaf中的CXF:如何在子资源上配置bean验证(最好使用Blueprint)?,java,cxf,bean-validation,karaf,blueprint-osgi,Java,Cxf,Bean Validation,Karaf,Blueprint Osgi,我在Karaf中使用了CXF的Dinamics特性,并且面临着Bean验证不适用于子资源的问题。 例如,在以下代码中: @Path("services") public interface Service { @Path("{id}/orders") public Order getOrderForService(@PathParam("id") int serviceId); }
@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);
}
当Order是根资源时,bean验证工作正常,但当它作为服务的子资源调用时,bean验证不工作
我发现了一个问题
你在哪里说的
这不是一个bug-JAXRSBeanValidationInvoker可以处理它
注意JAXRSBeanValidationInterceptor也是一个ContainerRequestFilter,因此您可以将其注册为JAX-RS提供程序,但具有讽刺意味的是,由于匹配后请求筛选器不能应用于定位器,因此不能用于验证定位器。。。因此,注册自定义调用程序也是验证子资源定位器的唯一方法
我把这篇文章涂红了
但它并没有描述如何使用Blueprint配置调用程序
所以问题是:如何使用Blueprint在Karaf中的CXF子资源上配置bean验证?
或者有其他方法可以做到这一点吗?我真的认为,如果您在Camel blueprint中使用Camel CXF和Camel bean验证,您的生活会变得更加轻松。Camel的学习曲线实际上没有什么,它与Karaf和(Camel)Blueprint一起工作得非常好。使用这两种方法应该可以解决您的问题。您可以通过从camel blueprint原型创建新项目来签出示例。似乎还有一个带有blueprint的camel cxf原型。如果你看看这些选项,它们看起来很吸引人,我相信你需要的是一个动态路由器,它只是一个路由器,根据你给它的任何规则路由到端点 Camel-CXF教程 希望我能正确理解你的问题,这可能会有所帮助