gpt4 book ai didi

java - 在 OSGi 中加载框架工厂

转载 作者:行者123 更新时间:2023-12-02 04:25:23 25 4
gpt4 key购买 nike

我正在尝试让框架工厂在我的 Maven 项目中加载 OSGi 包。我已经尝试过以下方法:

import org.osgi.framework.launch.FrameworkFactory;
public class Activator implements BundleActivator {
public void start(BundleContext context) throws Exception {
FrameworkFactory ff = ServiceLoader.load(FrameworkFactory.class).iterator().next();
}
}

我的包中有 jar org.apache.felix.framework-4.4.1.jar。MANIFEST.MF 条目:

...
Bundle-ClassPath: .,provider-0.0.1-SNAPSHOT.jar,org.apache.felix.framework-4.4.1.jar
...

但是我收到以下错误:我在 felix 容器中尝试过以下错误:

java.util.NoSuchElementException
at java.util.ServiceLoader$LazyIterator.next(Unknown Source)
at java.util.ServiceLoader$1.next(Unknown Source)
at com.xxxxx.consumer.Activator.start(Activator.java:23)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2154)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2072)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1299)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)
at java.lang.Thread.run(Unknown Source)

请帮我解决这个问题。我想加载我的 Bundle-Classpath 中存在的 OSGi 包。

最佳答案

FrameworkFactory 可用于在普通的旧 Java 应用程序中嵌入和启动 OSGi 框架。

您尝试在 BundleActivator 中使用它,它只会在 OSGi 框架的上下文中调用。

因此,您将在另一个 OSGi 框架中启动一个 OSGi 框架,这可能不是您想要的。

关于java - 在 OSGi 中加载框架工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32255514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com