0

我有一个带有激活器的 OSGi 插件,我要求在我的 tomcat jsf 项目下启动它。

基于: http: //www.eclipse.org/equinox/documents/quickstart.php和其他一些文档,我已将此结构放在我的 WEB-INF 目录下以启动 osgi 的Equinox 实现。我已经能够直接访问插件,但不能通过从另一个插件引用它以编程方式访问它。这就是那个例子。

MyProject 配置/config.ini org.eclipse.osgi_3.3.0.jar org.eclipse.equinox.common_3.3.0.jar org.eclipse.update.configurator_3.2.100.jar plugins/com.fnet.tts.service_1.0.0.jar

我在 config.ini 中放置了以下两行

osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@start, org.eclipse.equinox.registry@3:start, com.fnet.tts.service@4:start osgi .bundles.defaultStartLevel=4

但是,当我尝试激活调用 tts.service 的包时出现此错误。

详细信息:com.fnet.runtime.KSException:无法在 com.runtime.impl.RuntimeServiceImpl$KSImpl .loadKnowledgebase(RuntimeServiceImpl.java:190) 处启动捆绑“com.fnet.tts.service.viewSchedule_2.0.0.jar” ..loadKnowledgebaseHandle(InterviewContext.java:83) 原因:org.osgi.framework.BundleException:无法解析捆绑包。原因:缺少约束:Require-Bundle: com.fnet.tts.service;bundle-version="1.0.0" at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(Bundl eHost.java:305) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(摘要 tBundle.java:265) 在 org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Abstract tBundle.java:257) 在 com.fnet.runtime.impl.RuntimeServiceImpl$KSImpl .loadKnowledgebase(RuntimeServiceImpl.java:

我已经看了好几个小时了,我正在寻找线索、提示或答案,以便我可以继续前进。

谢谢。

4

1 回答 1

0

您能否启用更多调试输出以查看“com.fnet.tts.service”捆绑包发生了什么?Equinox 是否尝试加载它但失败了,或者甚至没有尝试?

另外,您可以访问 OSGi 控制台吗?如果是这样,已安装捆绑包的列表如何?您可以从控制台手动安装捆绑包吗?

您在开始级别 4 开始您的捆绑包。可能尚未达到此开始级别。当您在第 1 级启动捆绑包(所有捆绑包?)时它是否有效?

于 2009-03-31T03:00:14.977 回答