在使用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功能也就可以使用了
本文详细介绍了在使用OSGi的DeclarativeServices功能时遇到的启动问题及解决办法。作者分享了如何正确加载必要的Bundle,包括org.eclipse.osgi_*.jar、org.eclipse.osgi.services_*.jar和org.eclipse.equinox.util_*.jar等,以确保DeclarativeServices功能正常运行。
265

被折叠的 条评论
为什么被折叠?



