java - 如何在 OSGi Karaf 中注册 org.apache.aries.blueprint.Interceptor?

标签 java osgi interceptor karaf blueprint-osgi

我正在尝试实现一个简单的拦截器来调用 OSGi Karaf 环境中已注册服务的方法。这些服务是通过蓝图配置发布的,尽管有如何拦截 CXF 网络服务的工作示例,但我找不到任何关于如何注册 org.apache.aries.blueprint.Interceptor 实现的文档。 .

这个功能肯定是几年前引入的according to Jira .

从广义上讲,这个问题与 Can I inject proxies in front of Blueprint services published by other bundles? 有关。这是用代理解决的,而拦截器方法只在表面上讨论。

如果我正在寻找的功能在 apache 术语中有不同的标记,我仍然会发现一个有效的端到端示例非常有用,因为上面的线程仅说明了理论方法。

最佳答案

您只能在不完全在包外的命名空间处理程序中添加蓝图拦截器。

有关实现命名空间的示例,请参阅 blueprint-authz .正如您在示例中看到的那样,您将必须引入一个简单的元素,用户必须将其添加到他的 xml 中。这似乎是进入蓝图初始化的唯一方法。

关于java - 如何在 OSGi Karaf 中注册 org.apache.aries.blueprint.Interceptor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30164280/

相关文章:

javascript - Axios - 防止 .then() 在出现 http 错误时执行

java - 为什么拦截器的onLoad()不起作用?

java - 如何从数组中打印出一个随机字符串

java - OSGi java.lang.NoClassDefFoundError : org/osgi/framework/BundleContext

java - 如何在不出现 ClassCastException 的情况下在另一个 OSGi 包中公开一个 OSGi 包中的服务

osgi - 如何在 pax 考试中指定系统包导出

android - [Android] [改造]使用拦截器调用不同的API

java - 通过bash脚本在Ubuntu 16.04上安装Java7

java - 为什么这会抛出 NullPointerException?

java - Apache Commons 文件上传 - 流意外结束