WELD OSGI 示例 - 无结果
WELD OSGI example - no result
我想为 Java SE 执行以下操作 solution:Apache Felix + Weld(我使用 felix 4.6.1 和 WELD 2.2.10.SP1)。为此,我想 运行 焊接档案中的示例之一 - weld-osgi-paint。
我只安装了以下包:
xbean-bundleutils-3.18.jar
pax-cdi-api-0.8.0.jar
pax-cdi-extension-0.8.0.jar
pax-cdi-spi-0.8.0.jar
pax-cdi-extender-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
ops4j-base-lang-1.5.0.jar
slf4j-api-1.7.6.jar
slf4j-log4j12-1.7.2.jar
log4j-1.2.17.jar
weld-osgi-paint-api.jar
weld-osgi-paint-core.jar
weld-osgi-paint-triangle.jar
weld-osgi-paint-square.jar
我只开始两个包:
org.apache.felix.scr-1.8.2.jar
weld-osgi-paint-core.jar
除了 weld-se.jar
和 weld-se-core.jar
我添加到 lib 路径并以这种方式从它们导出 "javax.*" 包:
String SYSTEM_PACKAGES =
"org.osgi.framework;version=\"1.8\"," +
"org.osgi.util.tracker;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,"+
"javax.el,javax.enterprise.context;version=\"1.0\","+
"javax.enterprise.event;version=\"1.0\","+
"javax.enterprise.inject;version=\"1.0\","+
"javax.enterprise.util;version=\"1.0\","+
"javax.inject;version=\"1.0\","+
"javax.annotation;version=\"1.1\","+
"javax.enterprise.context.spi;version=\"1.0\","+
"javax.enterprise.inject.spi;version=\"1.0\","+
"org.w3c.dom,org.xml.sax,org.xml.sax.helpers";
configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES, SYSTEM_PACKAGES);
我启动程序,但没有收到任何错误和异常。我什么也得不到。我做错了什么?
编辑 1
我删除了 slf4j 包,而是安装了 pax-logging-api-1.8.2.jar。这是我现在得到的:
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling SLF4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Jakarta Commons Logging API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Log4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Avalon Logger API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling JULI Logger API support.
仅此而已。没有其他的。该程序不会终止。它只是显示任何其他内容。
您需要启动 pax-cdi-extender。它处理示例。顺便提一句。除了片段之外,我会启动所有捆绑包。如果它们有一些活跃的行为,那么启动它们是有意义的,如果它们只是库,则不会造成伤害。
我不确定你所说的 "adding weld-se* to lib path" 是什么意思。
Pax CDI 需要 weld-osgi-bundle
及其依赖项。 Weld SE 适用于 Java SE,不适用于 OSGi。
查看 Pax CDI integration tests 中的工作示例。
我想为 Java SE 执行以下操作 solution:Apache Felix + Weld(我使用 felix 4.6.1 和 WELD 2.2.10.SP1)。为此,我想 运行 焊接档案中的示例之一 - weld-osgi-paint。
我只安装了以下包:
xbean-bundleutils-3.18.jar
pax-cdi-api-0.8.0.jar
pax-cdi-extension-0.8.0.jar
pax-cdi-spi-0.8.0.jar
pax-cdi-extender-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
ops4j-base-lang-1.5.0.jar
slf4j-api-1.7.6.jar
slf4j-log4j12-1.7.2.jar
log4j-1.2.17.jar
weld-osgi-paint-api.jar
weld-osgi-paint-core.jar
weld-osgi-paint-triangle.jar
weld-osgi-paint-square.jar
我只开始两个包:
org.apache.felix.scr-1.8.2.jar
weld-osgi-paint-core.jar
除了 weld-se.jar
和 weld-se-core.jar
我添加到 lib 路径并以这种方式从它们导出 "javax.*" 包:
String SYSTEM_PACKAGES =
"org.osgi.framework;version=\"1.8\"," +
"org.osgi.util.tracker;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,"+
"javax.el,javax.enterprise.context;version=\"1.0\","+
"javax.enterprise.event;version=\"1.0\","+
"javax.enterprise.inject;version=\"1.0\","+
"javax.enterprise.util;version=\"1.0\","+
"javax.inject;version=\"1.0\","+
"javax.annotation;version=\"1.1\","+
"javax.enterprise.context.spi;version=\"1.0\","+
"javax.enterprise.inject.spi;version=\"1.0\","+
"org.w3c.dom,org.xml.sax,org.xml.sax.helpers";
configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES, SYSTEM_PACKAGES);
我启动程序,但没有收到任何错误和异常。我什么也得不到。我做错了什么?
编辑 1
我删除了 slf4j 包,而是安装了 pax-logging-api-1.8.2.jar。这是我现在得到的:
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling SLF4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Jakarta Commons Logging API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Log4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Avalon Logger API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling JULI Logger API support.
仅此而已。没有其他的。该程序不会终止。它只是显示任何其他内容。
您需要启动 pax-cdi-extender。它处理示例。顺便提一句。除了片段之外,我会启动所有捆绑包。如果它们有一些活跃的行为,那么启动它们是有意义的,如果它们只是库,则不会造成伤害。
我不确定你所说的 "adding weld-se* to lib path" 是什么意思。
Pax CDI 需要 weld-osgi-bundle
及其依赖项。 Weld SE 适用于 Java SE,不适用于 OSGi。
查看 Pax CDI integration tests 中的工作示例。