从Netbeans运行OSGi模块时会导致运行时错误

时间:2013-07-10 16:52:00

标签: java netbeans osgi netbeans-7 rcp

我们正在开发一个Netbeans RCP应用程序,其中包括NB模块和OSGi模块。运行开发的RCP应用程序时,它在ServiceTracker(ServiceTrackerCustomizer)构造函数上提供NoSuchMethodFoundException。

当这个应用程序被打包为.Zip发行版并被提取时,这很奇怪。从它运行的.Zip包执行。此外,这个应用程序在某些机器上运行得很好(具有相同的版本和配置),并且在其他机器上会出现相同的错误。

这有什么解决方案吗?我们在RCP和OSGi配置中出错了,还是Netbeans安装问题?

我一直在检查这个问题很长一段时间,但我找不到解决方案。

配置:

Windows 8 x64 Netbeans 7.3或7.3.1(两个版本中的任何一个)

...谢谢

1 个答案:

答案 0 :(得分:0)

在版本4.3中添加了一个额外的构造函数ServiceTracker(将java.lang.Class作为其第二个参数的构造函数)。您可能是针对比NetBeans支持的更高版本的OSGi开发了捆绑包。

通常,通过适当的版本控制可以避免这种错误。您的包应该导入版本范围为[1.5,2.0)的org.osgi.util.tracker包,如下所示:

Import-Package: org.osgi.util.tracker; version="[1.5,2.0)"

如果NetBeans不支持OSGi R4.3(我不知道自己是否这样做),那么你应该针对R4.2开发并避免使用4.3中添加的其他方法。