我正在尝试创建包装另一个jar的OSGi服务。我将jar添加到项目,类路径和二进制构建中。我在Activator中注册了该服务,但是当消费包调用该服务时,我在包装jar上得到了java.lang.NoClassDefFoundError。有人知道我在做什么错吗?
提前致谢。
您是否正在导出使用者所需的软件包以及实施所需的所有软件包。消费者将需要导入将被引用的所有内容。
附带说明一下,以这种方式创建捆绑软件在Eclipse中无法很好地进行开发(对于运行时而言效果很好)。如果尝试从另一个OSGi项目引用jar中的类或接口,则IDE将无法解析任何内容,因为它无法“查看” jar中的文件。必须在捆绑包中扩展jar,以使所有内容可见(在IDE中)。Eclipse根据导入和导出自动创建适当的类路径引用,以进行构建。在捆绑软件中没有jar文件的情况下,您将必须显式维护该类路径。