[OSGi] 启动OSGi的Declarative Services

    技术2022-05-11  17

    在使用OSGi的Declarative Services功能时,首先得启动该服务。

    但在试图启动org.eclipse.equinox.ds_*.jar到ACTIVE状态时,提示如下:

    org.osgi.framework.BundleException: The Bundle could not be resolved. Reason: Missing Constraint: ImportPackage: org.eclipse.equinox.internal.util.event; version="1.0.0"

    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:XXX)

    ......

     

    根据错误提示,显然需要org.eclipse.equinox.internal.util.event包,因此在启动ds之前启动org.eclipse.equinox.util_*.jar,然而仍然报错,经过一番折腾,才知还需要org.eclipse.osgi.services_*.jar的支持。

     

    最后总结如下:

    要使用OSGi的Declarative Services需要以下Bundle的支持

    org.eclipse.osgi_*.jar

    org.eclipse.osgi.services_*.jar

    org.eclipse.equinox.util_*.jar

    在启用以上Bundle的情况下,就可以启动org.eclipse.equinox.ds_*.jar,随之Declarative Services功能也就可以使用了

     


    最新回复(0)