2016-03-02 7 views
2

Я использую Dinamics Features CXF в Karaf и столкнулся с проблемой, что проверка Bean не работает для подресурсов. . в следующем коде:CXF в Karaf: как настроить проверку валика на субресурсах (желательно с использованием Blueprint)?

@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); 
} 

когда заказ корневой ресурс, проверка боб работает отлично, но когда он вызывается как subresource обслуживания, проверки боб не работает.

Я нашел проблему CXF-6297

, где говорилось, что

Это не ошибка - JAXRSBeanValidationInvoker может заботиться о нем.

Примечание JAXRSBeanValidationInInterceptor также является ContainerRequestFilter, поэтому вы можете зарегистрировать его как поставщика JAX-RS, но по иронии судьбы, учитывая, что фильтры запроса после сопоставления не могут применяться к локаторам, он не может использоваться для проверки локаторов. .. Так что регистрация пользовательского Invoker это единственный путь, чтобы пойти, чтобы получить subresource локаторы подтверждено слишком

и Я красный изделию about Invokers

но не описывает, как настроить Invoker с помощью Blueprint ,

Итак, вопрос в том, как настроить проверку бобов на подресурсы CXF в Karaf с использованием Blueprint? Может быть, есть еще один способ сделать это?

ответ

0

Я действительно думаю, что ваша жизнь будет намного проще, если вы используете Camel CXF и верблюд-бонусы с верблюжьим планом. Кривая обучения для Верблюда практически ничего и прекрасно работает с Karaf и (Camel) Blueprint. Использование этих двух методов должно решить вашу проблему. Вы можете проверить выборку, создав новый проект из архетипа верблюда. Также появляется архетип для верблюда cxf с планом. Если вы посмотрите на эти параметры, и они кажутся привлекательными, я считаю, что вам нужен динамический маршрутизатор, который является всего лишь маршрутизатором, который направляется к конечным точкам, основываясь на любых правилах, которые вы ему даете.

https://camel.apache.org/cxf.html https://camel.apache.org/bean-validation.html

Camel-CXF учебник https://camel.apache.org/better-jms-transport-for-cxf-webservice-using-apache-camel.html

Надеюсь, я понял ваш вопрос правильно, и это может помочь.