我正在将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
现在可以使用OSGi R7的JAX-RS白板 . Registering a JAX-RS extension就像使其成为提供相关服务接口的OSGi服务一样简单 - 在本例中为 ContainerRequestFilter 并添加服务属性"osgi.jaxrs.extension=true" .
ContainerRequestFilter
通过使用Declarative Services和bnd 4.0.0中的R7功能,可以使用新的ComponentPropertyType元注释将此服务属性应用于Declarative Services组件 . 标准注释 @JaxrsExtension 是JAX-RS白板规范的一部分 .
@JaxrsExtension
例如:
@JaxrsResource @Component public class MyRequestFilter implements ContainerRequestFilter { // Implementation goes in here }
OSGi enRoute项目提供了使用JAX-RS白板的其他示例in its examples
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白板规范的一部分 .例如:
OSGi enRoute项目提供了使用JAX-RS白板的其他示例in its examples