java - 在 Java SE 上使用 felix 运行 Weld osgi 示例

标签 java osgi cdi apache-felix weld

我想做以下解决方案:Apache Felix + Weld 2.2.10.SP1 for Java SE。为此,我想运行 Weld 存档中的示例之一 -weld-osgi-paint。

我使用 felix 4.6.1、java8,并且我安装并启动了以下 bundle :

cdi-api.jar
javax.annotation-api-1.2.jar
javax.el-api-2.2.4.jar
javax.interceptor-api-1.2.jar
log4j-1.2.17.jar
ops4j-base-lang-1.5.0.jar
org.apache.felix.scr-1.8.2.jar
org.apache.servicemix.bundles.javax-inject-1_2.jar
org.osgi.compendium-4.3.1.jar
pax-cdi-api-0.8.0.jar
pax-cdi-extender-0.8.0.jar
pax-cdi-extension-0.8.0.jar
pax-cdi-spi-0.8.0.jar
pax-swissbox-core-1.8.0.jar
pax-swissbox-lifecycle-1.8.0.jar
pax-swissbox-tracker-1.8.0.jar
slf4j-api-1.7.6.jar
slf4j-log4j12-1.7.2.jar
weld-osgi-paint-api.jar
weld-osgi-paint-core.jar
weld-osgi-paint-square.jar
weld-osgi-paint-triangle.jar
weld-se-core.jar
weld-se.jar
xbean-bundleutils-3.18.jar

此外我还有以下额外的包

String SYSTEM_PACKAGES =
        "org.osgi.framework;version=\"1.8\"," +
        "org.osgi.service.packageadmin;version=\"1.8\","+
        "org.osgi.framework.wiring;version=\"1.8\","+
        "javax.swing,javax.management,javax.naming,javax.xml.parsers,"+
        "org.w3c.dom,org.xml.sax,org.xml.sax.helpers";
configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES, SYSTEM_PACKAGES);

我运行该程序,这就是我得到的

org.osgi.framework.BundleException: Fragment bundles can not be started. at org.apache.felix.framework.Felix.startBundle(Felix.java:1981) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977) at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964)

仅此而已。我做错了什么?

最佳答案

您尝试启动的 bundle 之一是片段。片段捆绑可能无法启动。它们只能被解决。

关于java - 在 Java SE 上使用 felix 运行 Weld osgi 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29601790/

相关文章:

java - 鼠标悬停触发 JXCollapsiblePane

java - 如何读取套接字响应?

Java这就是多重​​继承吗?或者可以接受吗?

java - 将选项卡放在其他 Activity 中

maven - 即使在安装 RDF4J 包后,OpenDaylight OSGi 也无法找到 RDF4J 类

java - 如何使用 Vaadin CDI 和 Navigator 实现 MVP?

osgi - 中断 OSGi 组件被激活的有效方法

java - 使用配置属性为 DS 组件选择依赖项

java - 如何在运行 grizzly 的 java se 上启用 Web 服务(jaxrs/jersey)中的 CDI 注入(inject)?

jsf - CDI/Weld - 结束对话后如何处理浏览器页面刷新?