Osgi 带有RSA和DS的Apache CXF ContainerRequestFilter
我正在将CXF REST端点从blueprint迁移到在ApacheKaraf上运行的声明性服务。我使用Aries RSA和DOSGI。在旧代码中使用了ContainerRequestFilter(在blueprint中指定),但我不确定它如何与DS一起使用?从[0]中,我可以看到javax.servlet.Filter可以注册,我想知道什么是正确的方法。是否可以使用DS注释注册ContainerRequestFilterOsgi 带有RSA和DS的Apache CXF ContainerRequestFilter,osgi,cxf,apache-karaf,declarative-services,Osgi,Cxf,Apache Karaf,Declarative Services,我正在将CXF REST端点从blueprint迁移到在ApacheKaraf上运行的声明性服务。我使用Aries RSA和DOSGI。在旧代码中使用了ContainerRequestFilter(在blueprint中指定),但我不确定它如何与DS一起使用?从[0]中,我可以看到javax.servlet.Filter可以注册,我想知道什么是正确的方法。是否可以使用DS注释注册ContainerRequestFilter [0]现在可以使用OSGi R7中的JAX-RS白板。只需将其设置为一个
[0]现在可以使用OSGi R7中的JAX-RS白板。只需将其设置为一个OSGi服务,提供相关的服务接口即可—在本例中为
ContainerRequestFilter
,并添加服务属性“OSGi.jaxrs.extension=true”
通过使用声明性服务和bnd 4.0.0中的R7特性,可以使用新的ComponentPropertyType元注释将此服务属性应用于声明性服务组件。标准注释@jaxrextension
是JAX-RS白板规范的一部分
例如:
@JaxrsResource
@Component
public class MyRequestFilter implements ContainerRequestFilter {
// Implementation goes in here
}
OSGi途中项目提供了使用JAX-RS白板的其他示例