问题标签 [apache-felix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
osgi - osgi:部分存在于包中的导入包
我有一个包 XYZ,它存在于 2 个包 A 和 B 中:
Bundle B 导出包 XYZ Bundle A 导入包 XYZ 并得到一个异常,即找不到他自己的类 Class1。它应该工作吗?
我将 glassfish 3.1 与 felix 一起使用
osgi - 使用 jsafeJCEFIPS.jar OSGi
有没有人尝试过使用 jsafeJCEFIPS.jar OSGi?jar 已签名,我无法将其转换为捆绑包。我尝试将 jar 嵌入到 bundle 中,但当我尝试创建 JsafeJCE 对象的实例时,它总是抛出 java.lang.SecurityException:“JsafeJCE 提供程序已禁用,FIPS 140 要求的自我完整性检查失败”。
看起来 JsafeJCE 无法成功检查自身的完整性(签名等)。我打印出 jsafeJCE.class.getProtectionDomain,它是 (inputstream:bundle-name.jar )。
任何想法如何让 jsafeJCE 在 OSGi 中工作,我正在使用 Apache Felix。
提前致谢!
osgi - Apache Felix 部署不走运
我正在尝试通过 Apache Felix 的obr deploy命令部署特定版本的包。
我想安装 File Install 的 3.1.10 版本,但不幸的是deploy不理解版本(使用 @ 指定它们时):
如果我尝试使用分号,它也不起作用:
有人知道发生了什么吗?
PS:任何安装“文件安装 3.0.2”,然后将“3.1.10”罐子放入加载目录(从而安装另一个“文件安装”包)的人的奖励积分 - 然后删除“3.0.2”版本!可悲的是,这不起作用,因为“文件安装”总是会自行挂起。
java - 在跨 OSGi 包的服务上添加方面
我有一个 OSGi 捆绑包(不属于我 - 所以我无法更改它!),它公开(导出)一个服务EchoService
,我想将一个方面附加到这个服务的方法(以便执行一些前/后处理周围)。这些部署在 Apache Felix 容器上。
我已经编写了自己的 OSGi 包(显然导入了EchoService
),并使用标准 Spring AOP 将 Spring 方面附加到它。但是,看起来方面没有附加,并且我的拦截器没有被调用。
我怀疑这是因为我试图拦截一个不属于我的包的服务(这似乎是合理的)。那是对的吗?我该如何克服呢?
这是我的拦截器/方面的样子:
ant - 使用 BND 嵌入第三方 JAR
我有一个使用 ANT 和经典 BND 工具构建的 OSGi 包。我的包在内部使用了一个库 (JAR),它不能作为我的 OSGi 容器 (Apache Felix) 中的包使用。所以,我试图将它嵌入到我的 bundle中,以便在运行时访问。
如何使用 ANT+BND 嵌入这样的库/JAR?(注意:我不能使用 MAVEN,使用它可能会容易得多)
java - 如何立即获得 ManagedService 配置?
我正在使用Felix 配置管理库来读取和应用 OSGi 服务的配置文件。我正在配置的许多服务都是第三方的(例如org.ops4j.pax.web.pax-web-jetty和org.ops4j.pax.url.mvn)并且使用简单的BundleActivator
而不是声明式服务。我发现这些服务每个都初始化了两次,因为
- 在激活时他们调用
ManagedService#updated(null)
,并且 - 不久之后,Felix异步
ConfigurationManager.UpdateThread
调用。ManagedService#update(non-null)
我讨厌这种延迟应用我的配置。由于固有的竞争条件,它会导致不稳定的故障。是否有可以同步应用配置以避免此问题的替代 CM 实现?或者我可以让 Felix 同步吗?(从对源代码和ManagedService javadoc的检查来看,似乎没有。)
osgi - 在另一个现有的 osgi 框架上部署 SIP Communicator (Jitsi),并可以通过 osgi 控制台对其进行控制
我正在使用 SIP Communicator (Jitsi)。它启动 felix 然后部署它的包,当我关闭 sipCom 时,它会卸载所有包然后关闭 felix 框架。现在我部署了我的包,但我希望在关闭 sip_communicator 后,felix 应该可以工作并且我的包不应该停止。对于以下一个想法,但我不知道如何实现:
启动新的 felix osgi,部署我的包,然后部署 SIP_Communicator 的包。要关闭 sipcom,请停止 SIP_Communicator 的捆绑包。
问题:我不知道需要在felix 上部署哪个bundle 才能控制SIP Communicator。
java - Bundle.loadClass() returns Class instance without fields or methods
I want to create an OSGi framework programmatically, load a Bundle with it and load a class from that bundle. When I call Bundle.loadClass()
I get a Class
isntance with all fields\methods\constructor fields set to null. It only has a name. I can't access any public methods, etc. I have tried both Equinox and Felix with the same result.
Bundle's MANIFEST
:
Framework setup:
and
Bundle loading:
Activator Class
instance contains constructor reference, but no public methods. It has public void start(BundleContext c)
and public void stop(BundleContext c)
.
How can I load the correct Class
? What am I doing wrong? Thanks for any help.
java - Swing 应用程序和 osgi felix
我创建了一个非常简单的捆绑包:
我已经编辑了清单文件:
我已经把所有这些东西都打包了,启动了 felix 并:启动文件:testosgi.jar
它不会给出错误,但也不起作用。有没有办法获得有关正在发生的事情的一些详细信息?
java - felix exthttpservice 设置 cookie 的会话路径
我有一个在 Felix osgi 容器中运行的 web 应用程序。我使用码头作为 extHttpService 的实现。目前它正在将 cookie 写入“/”根路径。我想更改它,因为它会导致与其他 Web 应用程序发生冲突。查看码头文档似乎我需要设置以下属性。
org.mortbay.jetty.servlet.SessionPath
但是,我无法找到通过 osgi 使用 ExtHttpService 进行设置的方法。我尝试创建一个 jetty.xml 文件,将其添加到 config.properties,并将其设置为调用中的属性以注册我的 servlet。
有谁知道如何设置这个?
谢谢,