Java Eclipse外部的OSGi包

Java Eclipse外部的OSGi包,java,osgi,bundle,apache-felix,apache-karaf,Java,Osgi,Bundle,Apache Felix,Apache Karaf,我已经使用EclipseIndigo使用OSGiJava框架开发了一些包。有一个主捆绑包,它依赖于其他捆绑包,并且具有要运行的主程序。如果我尝试在Eclipse中运行所有捆绑包,一切正常,但是如果我将每个捆绑包保存为一个JAR,并在命令行中启动OSGi框架,那么当我尝试启动主捆绑包时,会出现异常。找不到的类是从属类。捆绑包的其余部分处于活动状态,主捆绑包刚刚解决 我已经用我正在使用的所有库(mysql连接器等)创建了一个捆绑包,并且在我需要这些库的每个捆绑包中导入这个捆绑包。我不知道这是否是实现

我已经使用EclipseIndigo使用OSGiJava框架开发了一些包。有一个主捆绑包,它依赖于其他捆绑包,并且具有要运行的主程序。如果我尝试在Eclipse中运行所有捆绑包,一切正常,但是如果我将每个捆绑包保存为一个JAR,并在命令行中启动OSGi框架,那么当我尝试启动主捆绑包时,会出现异常。找不到的类是从属类。捆绑包的其余部分处于活动状态,主捆绑包刚刚解决

我已经用我正在使用的所有库(mysql连接器等)创建了一个捆绑包,并且在我需要这些库的每个捆绑包中导入这个捆绑包。我不知道这是否是实现它的最佳方式。另外,我在应用程序中使用线程,其中一些线程使用来自不同bundle的方法,这可能是问题的根源吗


有人知道我能做什么吗?我还必须在ApacheKaraf中安装这些包,我得到了相同的结果。这与每个包的开始级别有关吗?

好的,我发现了问题所在。Eclipse默认将参数
org.osgi.framework.bootdegration
设置为*,但所有其他osgi框架都没有

我现在正在使用ApacheKaraf,我已经将它位于etc/中的config.properties从默认值(org.Apache.Karaf.jaas.boot,sun.,com.sun.,javax.transaction,javax.transaction.*)更改为*。这使它能够工作,但我仍在尝试识别需要加载的确切库,因为不建议将此参数设置为*

要查找更多信息,请执行以下操作:


谢谢,我希望这能帮助其他人,

好的,我发现了问题所在。Eclipse默认将参数
org.osgi.framework.bootdegration
设置为*,但所有其他osgi框架都没有

我现在正在使用ApacheKaraf,我已经将它位于etc/中的config.properties从默认值(org.Apache.Karaf.jaas.boot,sun.,com.sun.,javax.transaction,javax.transaction.*)更改为*。这使它能够工作,但我仍在尝试识别需要加载的确切库,因为不建议将此参数设置为*

要查找更多信息,请执行以下操作:


谢谢,我希望这对其他人有所帮助,

您如何导出捆绑包?根据捆绑包的不同,我将导出整个捆绑包或仅导出几个包,但对于两者,我都使用MANIFEST.MF。主捆绑包的此文件为:清单版本:1.0捆绑包清单版本:2捆绑包名称:主捆绑包符号名称:主捆绑包版本:1.0.0.qualifier捆绑包激活器:com.xaptum.messageprocessor.main.Activator捆绑包供应商:需要的任何捆绑包:XXXXX捆绑包;捆绑包版本=“1.0.0”,YYYYY捆绑包;bundle version=“1.0.0”bundle RequiredExecutionEnvironment:JavaSE-1.7导入包:com.some.imported.Package,org.osgi.framework;version=“1.3.0”我猜Rohit问的是如何将包导出到jar文件?!是的,我已经使用插件开发>可部署插件和片段将它们导出到JAR文件中。对不起,误会了。此外,我认为我的问题与在运行时加载mysql jdbc连接器有关。不知何故,它找不到库,因此我收到一个NullPointerException,然后该对象无法实例化,我收到NoClassDefFoundError。这里是一个相关链接,但我还没有找到解决方案:您如何导出捆绑包?根据捆绑包的不同,我导出整个捆绑包或仅导出几个包,但对于两者,我都使用MANIFEST.MF。主捆绑包的此文件为:清单版本:1.0捆绑包清单版本:2捆绑包名称:主捆绑包符号名称:主捆绑包版本:1.0.0.qualifier捆绑包激活器:com.xaptum.messageprocessor.main.Activator捆绑包供应商:需要的任何捆绑包:XXXXX捆绑包;捆绑包版本=“1.0.0”,YYYYY捆绑包;bundle version=“1.0.0”bundle RequiredExecutionEnvironment:JavaSE-1.7导入包:com.some.imported.Package,org.osgi.framework;version=“1.3.0”我猜Rohit问的是如何将包导出到jar文件?!是的,我已经使用插件开发>可部署插件和片段将它们导出到JAR文件中。对不起,误会了。此外,我认为我的问题与在运行时加载mysql jdbc连接器有关。不知何故,它找不到库,因此我收到一个NullPointerException,然后该对象无法实例化,我收到NoClassDefFoundError。这是一个相关链接,但我还没有找到解决方案: