首页 文章

带有RSA和DS的Apache CXF ContainerRequestFilter

提问于
浏览
2

我正在将CXF REST endpoints 从蓝图迁移到在Apache Karaf上运行的Declarative Services . 我使用Aries RSA和DOSGI . 在旧代码中使用了ContainerRequestFilter(在蓝图中指定),但我不确定它如何与DS一起使用?从[0]我可以看到javax.servlet.Filter可以注册,我想知道什么是正确的方法 . 是否可以使用DS注释注册ContainerRequestFilter?

[0] http://cxf.apache.org/distributed-osgi-reference.html

1 回答

  • 1

    现在可以使用OSGi R7的JAX-RS白板 . Registering a JAX-RS extension就像使其成为提供相关服务接口的OSGi服务一样简单 - 在本例中为 ContainerRequestFilter 并添加服务属性"osgi.jaxrs.extension=true" .

    通过使用Declarative Services和bnd 4.0.0中的R7功能,可以使用新的ComponentPropertyType元注释将此服务属性应用于Declarative Services组件 . 标准注释 @JaxrsExtension 是JAX-RS白板规范的一部分 .

    例如:

    @JaxrsResource
    @Component
    public class MyRequestFilter implements ContainerRequestFilter {
    
        // Implementation goes in here
    
    }
    

    OSGi enRoute项目提供了使用JAX-RS白板的其他示例in its examples

相关问题