Я переношу конечные точки CXF REST из схемы в декларативные службы, работающие на Apache Karaf. Использую Овен РСА и ДОСГИ. В старом коде используется ContainerRequestFilter (указанный в блупринте), но я не уверен, как его можно использовать с DS? Из [0] я вижу, что javax.servlet.Filter можно зарегистрировать, и мне интересно, каков правильный подход. Можно ли зарегистрировать ContainerRequestFilter с помощью аннотаций DS?
Apache CXF ContainerRequestFilter с RSA и DS
Ответы (1)
Теперь это возможно с помощью доски JAX-RS из OSGi R7. Регистрация расширения JAX-RS так же просто, как сделать его службой OSGi, предоставляющей соответствующий интерфейс службы (в данном случае ContainerRequestFilter
) и добавив свойство службы "osgi.jaxrs.extension=true".
Кроме того, используя функции R7 из Declarative Services и bnd 4.0.0, это свойство службы можно применить к компонентам Declarative Services с помощью новых метааннотаций ComponentPropertyType. Стандартная аннотация @JaxrsExtension
является частью спецификации интерактивной доски JAX-RS.
Например:
@JaxrsResource
@Component
public class MyRequestFilter implements ContainerRequestFilter {
// Implementation goes in here
}
Проект OSGi enRoute предоставляет другие примеры использования интерактивной доски JAX-RS в своих примерах.
person
Tim Ward
schedule
04.05.2018